removed old database stuff, just left what's needed for importing
This commit is contained in:
@@ -19,92 +19,3 @@
|
|||||||
|
|
||||||
(defn get-all []
|
(defn get-all []
|
||||||
(query base-query))
|
(query base-query))
|
||||||
|
|
||||||
(defn get-by-id [id]
|
|
||||||
(first (query (-> base-query
|
|
||||||
(helpers/merge-where [:= :id id])))))
|
|
||||||
|
|
||||||
(defn fields->data [x]
|
|
||||||
(-> x
|
|
||||||
(assoc-in [:data :pdf-data] (:pdf-data x))
|
|
||||||
(assoc-in [:data :invoices] (:invoices x))
|
|
||||||
(dissoc :pdf-data)
|
|
||||||
(dissoc :invoices)))
|
|
||||||
|
|
||||||
(defn insert! [row]
|
|
||||||
(-> (j/insert! (get-conn)
|
|
||||||
:checks
|
|
||||||
(-> row
|
|
||||||
fields->data
|
|
||||||
clj->db))
|
|
||||||
first
|
|
||||||
db->clj
|
|
||||||
data->fields))
|
|
||||||
|
|
||||||
(defn insert-multi! [rows]
|
|
||||||
(->> (j/insert-multi! (get-conn)
|
|
||||||
:checks
|
|
||||||
(->> rows
|
|
||||||
(map fields->data)
|
|
||||||
(map clj->db)))
|
|
||||||
(map db->clj)
|
|
||||||
(map data->fields)))
|
|
||||||
|
|
||||||
(def all-keys #{:company-id :vendor-id :id :status :date :s3-uuid :s3-key :s3-url :check-number :memo :amount :paid-to :bank-account-id :type})
|
|
||||||
|
|
||||||
(defn add-sort-by [q sort-by asc]
|
|
||||||
(let [sort-by-key (keyword sort-by)]
|
|
||||||
(cond (nil? sort-by)
|
|
||||||
(helpers/merge-order-by q [:date])
|
|
||||||
|
|
||||||
(= :date sort-by-key)
|
|
||||||
(helpers/merge-order-by q [:date (when-not asc :desc)])
|
|
||||||
|
|
||||||
(all-keys sort-by-key)
|
|
||||||
(helpers/merge-order-by q
|
|
||||||
[sort-by-key (when-not asc :desc)]
|
|
||||||
[:date])
|
|
||||||
|
|
||||||
(= :vendor sort-by-key)
|
|
||||||
(-> q
|
|
||||||
(helpers/merge-left-join [:vendors :v] [:= :v.id :checks.vendor-id] )
|
|
||||||
(helpers/merge-order-by [:v.name (when-not asc :desc)]
|
|
||||||
[:date]))
|
|
||||||
|
|
||||||
(= :company sort-by-key)
|
|
||||||
(-> q
|
|
||||||
(helpers/merge-left-join [:companies :c] [:= :c.id :checks.company-id] )
|
|
||||||
(helpers/merge-order-by [:c.name (when-not asc :desc)]
|
|
||||||
[:date]))
|
|
||||||
|
|
||||||
:else
|
|
||||||
q)))
|
|
||||||
|
|
||||||
(defn base-graphql [{:keys [company-id vendor-id check-number bank-account-id status amount id statuses]}]
|
|
||||||
|
|
||||||
(cond-> base-query
|
|
||||||
(limited-companies id) (helpers/merge-where [:in :company-id (limited-companies id)])
|
|
||||||
(not (nil? company-id)) (helpers/merge-where [:= :company-id company-id])
|
|
||||||
(not (nil? bank-account-id)) (helpers/merge-where [:= :bank-account-id bank-account-id])
|
|
||||||
(not (nil? vendor-id)) (helpers/merge-where [:= :vendor-id vendor-id])
|
|
||||||
(not (nil? check-number)) (helpers/merge-where [:= :check-number check-number])
|
|
||||||
(not (nil? status)) (helpers/merge-where [:= :status status])
|
|
||||||
(not (nil? amount)) (helpers/merge-where [:= :amount amount])
|
|
||||||
(seq statuses ) (helpers/merge-where [:in :status statuses])))
|
|
||||||
|
|
||||||
(defn get-graphql [{:keys [start sort-by asc id limit] :as args :or {limit 100}}]
|
|
||||||
(query
|
|
||||||
(cond-> (base-graphql args)
|
|
||||||
true (add-sort-by sort-by asc)
|
|
||||||
true (assoc :limit limit)
|
|
||||||
start (assoc :offset start))))
|
|
||||||
|
|
||||||
(defn count-graphql [args]
|
|
||||||
(:count (first (query
|
|
||||||
(assoc (base-graphql args) :select [:%count.*])))))
|
|
||||||
|
|
||||||
(defn update! [row]
|
|
||||||
(j/update! (get-conn)
|
|
||||||
:checks
|
|
||||||
(-> row (fields->data) (clj->db))
|
|
||||||
["id = ?" (:id row)]))
|
|
||||||
|
|||||||
@@ -26,32 +26,3 @@
|
|||||||
|
|
||||||
(defn get-all []
|
(defn get-all []
|
||||||
(map data->fields (query base-query)))
|
(map data->fields (query base-query)))
|
||||||
|
|
||||||
(defn get-by-id [id]
|
|
||||||
(first (map data->fields
|
|
||||||
(query (-> base-query
|
|
||||||
(helpers/merge-where [:= :id id]))))))
|
|
||||||
|
|
||||||
(defn upsert [id data]
|
|
||||||
(-> (sql/build
|
|
||||||
:update :companies
|
|
||||||
:set (clj->db (select-keys (fields->data data) all-fields))
|
|
||||||
:where [:= :id (if (int? id)
|
|
||||||
id
|
|
||||||
(Integer/parseInt id))])
|
|
||||||
execute!)
|
|
||||||
(get-by-id (if (int? id)
|
|
||||||
id
|
|
||||||
(Integer/parseInt id))))
|
|
||||||
|
|
||||||
|
|
||||||
(defn add-bank-account [id bank-account]
|
|
||||||
(let [company (get-by-id id)
|
|
||||||
company (update company :bank-accounts
|
|
||||||
(fn [ba]
|
|
||||||
(let [next-id (inc (apply max (conj (map :id ba) 0)))]
|
|
||||||
(conj (vec ba) (assoc bank-account :id next-id)))))]
|
|
||||||
(upsert id company)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -62,127 +62,3 @@
|
|||||||
(defn get-all []
|
(defn get-all []
|
||||||
(query base-query))
|
(query base-query))
|
||||||
|
|
||||||
(defn find-conflicting [{:keys [id invoice-number company-id vendor-id] :as i}]
|
|
||||||
(query
|
|
||||||
(-> base-query
|
|
||||||
(helpers/merge-where [:and [:not= :id id]
|
|
||||||
[:= :invoice-number invoice-number]
|
|
||||||
[:= :company-id company-id]
|
|
||||||
[:= :vendor-id vendor-id]
|
|
||||||
[:not= :status "voided"]]))))
|
|
||||||
|
|
||||||
(defn get-multi [ids]
|
|
||||||
(query (-> base-query
|
|
||||||
(helpers/merge-where [:in :id ids]))))
|
|
||||||
|
|
||||||
(defn get-by-id [id]
|
|
||||||
(first (query (-> base-query
|
|
||||||
(helpers/merge-where [:= :id id])))))
|
|
||||||
|
|
||||||
(defn approve []
|
|
||||||
(j/update! (get-conn) :invoices {:imported true} [] ))
|
|
||||||
|
|
||||||
(defn update [v]
|
|
||||||
(j/update! (get-conn) :invoices (clj->db v) ["id = ?" (:id v)])
|
|
||||||
(get-by-id (:id v)))
|
|
||||||
|
|
||||||
(defn reject []
|
|
||||||
(j/delete! (get-conn) :invoices ["imported = false"]))
|
|
||||||
|
|
||||||
(defn get-unpaid [company]
|
|
||||||
(query
|
|
||||||
(if company
|
|
||||||
(-> base-query
|
|
||||||
(helpers/merge-where [:= :imported true])
|
|
||||||
(helpers/merge-where [:= :company-id (if (int? company)
|
|
||||||
company
|
|
||||||
(Integer/parseInt company))]))
|
|
||||||
(-> base-query
|
|
||||||
(helpers/merge-where [:= :imported true])))))
|
|
||||||
|
|
||||||
(defn get-pending [company]
|
|
||||||
(query
|
|
||||||
(if company
|
|
||||||
(-> base-query
|
|
||||||
(helpers/merge-where [:= :imported false])
|
|
||||||
(helpers/merge-where [:= :company-id (if (int? company)
|
|
||||||
company
|
|
||||||
(Integer/parseInt company))]))
|
|
||||||
(-> base-query
|
|
||||||
(helpers/merge-where [:= :imported false])))))
|
|
||||||
|
|
||||||
(defn add-sort-by [q sort-by asc]
|
|
||||||
(let [sort-by-key (keyword sort-by)]
|
|
||||||
(cond (nil? sort-by)
|
|
||||||
(helpers/merge-order-by q [:date])
|
|
||||||
|
|
||||||
(= :date sort-by-key)
|
|
||||||
(helpers/merge-order-by q [:date (when-not asc :desc)])
|
|
||||||
|
|
||||||
(all-keys sort-by-key)
|
|
||||||
(helpers/merge-order-by q
|
|
||||||
[sort-by-key (when-not asc :desc)]
|
|
||||||
[:date])
|
|
||||||
|
|
||||||
(= :vendor sort-by-key)
|
|
||||||
(-> q
|
|
||||||
(helpers/merge-left-join [:vendors :v] [:= :v.id :invoices.vendor-id] )
|
|
||||||
(helpers/merge-order-by [:v.name (when-not asc :desc)]
|
|
||||||
[:date]))
|
|
||||||
|
|
||||||
(= :company sort-by-key)
|
|
||||||
(-> q
|
|
||||||
(helpers/merge-left-join [:companies :c] [:= :c.id :invoices.company-id] )
|
|
||||||
(helpers/merge-order-by [:c.name (when-not asc :desc)]
|
|
||||||
[:date]))
|
|
||||||
|
|
||||||
:else
|
|
||||||
q)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defn base-graphql [{:keys [imported company-id status id statuses]}]
|
|
||||||
(cond-> base-query
|
|
||||||
(limited-companies id) (helpers/merge-where [:in :company-id (limited-companies id)])
|
|
||||||
(seq statuses ) (helpers/merge-where [:in :status statuses])
|
|
||||||
(not (nil? imported)) (helpers/merge-where [:= :imported imported])
|
|
||||||
(not (nil? status)) (helpers/merge-where [:= :status status])
|
|
||||||
(not (nil? company-id)) (helpers/merge-where [:= :company-id company-id])))
|
|
||||||
|
|
||||||
(defn get-graphql [{:keys [start sort-by asc limit] :as args :or {limit 100}}]
|
|
||||||
(query
|
|
||||||
(cond-> (base-graphql args)
|
|
||||||
|
|
||||||
true (add-sort-by sort-by asc)
|
|
||||||
true (assoc :limit limit)
|
|
||||||
start (assoc :offset start))))
|
|
||||||
|
|
||||||
(defn count-graphql [args]
|
|
||||||
(:count (first (query
|
|
||||||
(assoc (base-graphql args) :select [:%count.*])))))
|
|
||||||
|
|
||||||
(defn import [parsed-invoices companies vendors]
|
|
||||||
(->> (insert-multi!
|
|
||||||
(for [{:keys [total date invoice-number customer-identifier vendor-code] :as row} parsed-invoices]
|
|
||||||
(do
|
|
||||||
(dissoc (assoc row
|
|
||||||
:company-id (:id (parse/best-match companies customer-identifier))
|
|
||||||
:vendor-id (:id (first (filter #(= (:code %) vendor-code) vendors)))
|
|
||||||
:imported false
|
|
||||||
:potential-duplicate false)
|
|
||||||
:vendor-code))))
|
|
||||||
|
|
||||||
(map db->clj)))
|
|
||||||
|
|
||||||
(defn apply-payment [invoice-id amount]
|
|
||||||
(j/db-do-prepared (get-conn)
|
|
||||||
(-> (helpers/update :invoices)
|
|
||||||
(helpers/sset {:outstanding-balance (sql/call :- :outstanding-balance amount)})
|
|
||||||
(helpers/where [:= :id invoice-id])
|
|
||||||
(sql/format)))
|
|
||||||
(j/db-do-prepared (get-conn)
|
|
||||||
(-> (helpers/update :invoices)
|
|
||||||
(helpers/sset {:status "paid"})
|
|
||||||
(helpers/where [:and [:< :outstanding-balance 0.01]
|
|
||||||
[:= :id invoice-id]])
|
|
||||||
(sql/format))))
|
|
||||||
|
|||||||
@@ -6,47 +6,3 @@
|
|||||||
(defn get-all []
|
(defn get-all []
|
||||||
(query {:select [:*]
|
(query {:select [:*]
|
||||||
:from [:invoices-expense-accounts]}))
|
:from [:invoices-expense-accounts]}))
|
||||||
|
|
||||||
(defn get-missing []
|
|
||||||
(query {:select [:i.id :v.default-expense-account :i.total]
|
|
||||||
:from [[:invoices :i]]
|
|
||||||
:join [[:vendors :v]
|
|
||||||
[:= :v.id :i.vendor-id]]
|
|
||||||
:left-join [[:invoices-expense-accounts :nonexist]
|
|
||||||
[:= :i.id :nonexist.invoice-id]]
|
|
||||||
:where [:and [:= :nonexist.id nil]
|
|
||||||
[:not= :v.default-expense-account nil]] }))
|
|
||||||
|
|
||||||
(defn get-for-invoice [id]
|
|
||||||
(query {:select [:*]
|
|
||||||
:from [:invoices-expense-accounts]
|
|
||||||
:where [:= :invoice-id id]}))
|
|
||||||
|
|
||||||
(defn assign-defaults! []
|
|
||||||
(j/db-do-prepared (get-conn)
|
|
||||||
(doto
|
|
||||||
(sql/format {:insert-into [[:invoices-expense-accounts [:invoice-id :expense-account-id :amount :location]]
|
|
||||||
{:select [:i.id (sql/raw "COALESCE (i.default_expense_account, v.default_expense_account)") :i.total :i.default_location]
|
|
||||||
:from [[:invoices :i]]
|
|
||||||
:left-join [[:vendors :v]
|
|
||||||
[:= :v.id :i.vendor-id]
|
|
||||||
[:invoices-expense-accounts :nonexist]
|
|
||||||
[:= :i.id :nonexist.invoice-id]]
|
|
||||||
:where [:and [:= :nonexist.id nil]
|
|
||||||
[:or [:not= :v.default-expense-account nil]
|
|
||||||
[:not= :i.default-expense-account nil]]] }] })
|
|
||||||
println)
|
|
||||||
))
|
|
||||||
|
|
||||||
(defn replace-for-invoice [invoice-id expense-accounts]
|
|
||||||
(j/db-do-prepared (get-conn)
|
|
||||||
(sql/format {:delete-from [:invoices-expense-accounts :i]
|
|
||||||
:where [:= :i.invoice-id invoice-id] }))
|
|
||||||
|
|
||||||
(println expense-accounts)
|
|
||||||
(j/insert-multi! (get-conn)
|
|
||||||
:invoices_expense_accounts
|
|
||||||
(doto (->> expense-accounts
|
|
||||||
(map (fn [x] (assoc x :invoice-id invoice-id)))
|
|
||||||
(map clj->db ))
|
|
||||||
println)) )
|
|
||||||
|
|||||||
@@ -8,99 +8,3 @@
|
|||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[honeysql.core :as sql]
|
[honeysql.core :as sql]
|
||||||
[honeysql.helpers :as helpers]))
|
[honeysql.helpers :as helpers]))
|
||||||
|
|
||||||
(def all-keys #{:id :vendor-id :email :body :subject :sent :scheduled})
|
|
||||||
|
|
||||||
(defn insert [row]
|
|
||||||
(db->clj (first (j/insert! (get-conn)
|
|
||||||
:reminders
|
|
||||||
(clj->db row)))))
|
|
||||||
|
|
||||||
(def base-query (sql/build :select :reminders.*
|
|
||||||
:from :reminders))
|
|
||||||
|
|
||||||
(defn get-by-id [id]
|
|
||||||
(query (-> base-query
|
|
||||||
(helpers/merge-where [:= :id id]))))
|
|
||||||
|
|
||||||
(defn update! [id data]
|
|
||||||
(println data)
|
|
||||||
(-> (sql/build
|
|
||||||
:update :reminders
|
|
||||||
:set (select-keys data all-keys )
|
|
||||||
:where [:= :id id])
|
|
||||||
execute!)
|
|
||||||
(get-by-id id))
|
|
||||||
|
|
||||||
|
|
||||||
(defn delete-all []
|
|
||||||
(j/delete! (get-conn) :reminders []))
|
|
||||||
|
|
||||||
(defn find-future [vendors]
|
|
||||||
(map db->clj (j/query (get-conn) (into [(str "SELECT * FROM reminders "
|
|
||||||
"WHERE vendor_id in ("
|
|
||||||
(str/join "," (take (count vendors) (repeat "?")))
|
|
||||||
") "
|
|
||||||
"AND "
|
|
||||||
"sent is NULL"
|
|
||||||
) ]
|
|
||||||
vendors))))
|
|
||||||
|
|
||||||
|
|
||||||
(defn get-ready []
|
|
||||||
(map db->clj (j/query (get-conn)
|
|
||||||
(str
|
|
||||||
" SELECT reminders.*, vendors.name as vendor_name "
|
|
||||||
" FROM reminders INNER join vendors on reminders.vendor_id = vendors.id "
|
|
||||||
" WHERE reminders.sent IS NULL AND reminders.scheduled < NOW()"))))
|
|
||||||
|
|
||||||
(defn finish [id]
|
|
||||||
(j/update! (get-conn) :reminders {:sent (time/now)} ["id = ?" id] ))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defn add-sort-by [q sort-by asc]
|
|
||||||
(let [sort-by-key (keyword sort-by)]
|
|
||||||
(cond (all-keys sort-by-key)
|
|
||||||
(helpers/merge-order-by q [sort-by-key (when-not asc :desc)])
|
|
||||||
|
|
||||||
(= :vendor sort-by-key)
|
|
||||||
(-> q
|
|
||||||
(helpers/merge-left-join [:vendors :v] [:= :v.id :reminders.vendor-id] )
|
|
||||||
(helpers/merge-order-by [:v.name (when-not asc :desc)]))
|
|
||||||
|
|
||||||
:else
|
|
||||||
q)))
|
|
||||||
|
|
||||||
|
|
||||||
(defn base-graphql [{:keys [imported company-id]}]
|
|
||||||
base-query)
|
|
||||||
|
|
||||||
(defn get-graphql [{:keys [start sort-by asc] :as args}]
|
|
||||||
(query
|
|
||||||
(cond-> (base-graphql args)
|
|
||||||
(not (nil? sort-by) ) (add-sort-by sort-by asc)
|
|
||||||
true (assoc :limit 20)
|
|
||||||
start (assoc :offset start))))
|
|
||||||
|
|
||||||
(defn count-graphql [args]
|
|
||||||
(:count (first (query
|
|
||||||
(assoc (base-graphql args) :select [:%count.*])))))
|
|
||||||
|
|
||||||
(defn template []
|
|
||||||
{:subject "Reminder to send invoices"
|
|
||||||
:body (str "This is a reminder to please reply with a [format of invoice: pdf/excel]"
|
|
||||||
"version of last week's invoices for:"
|
|
||||||
"We would greatly appreciate it if you could send that to us by end of day on"
|
|
||||||
"Monday.")})
|
|
||||||
|
|
||||||
(defn send-emails [reminders]
|
|
||||||
(doseq [{:keys [vendor-name id email subject body]} reminders]
|
|
||||||
(when email
|
|
||||||
(println "Sending email to" email)
|
|
||||||
#_(ses/send-email :destination {:to-addresses [email]}
|
|
||||||
:source (:invoice-email env)
|
|
||||||
:message {:subject subject
|
|
||||||
:body {:html (str "<h1>Hello " vendor-name ",</h1><p>" body "</p> <p> - Integreat. </p>")
|
|
||||||
:text (str "Hello " vendor-name ",\r\n" body "\r\n - Integreat.")}}))
|
|
||||||
(finish id)))
|
|
||||||
|
|||||||
@@ -6,34 +6,8 @@
|
|||||||
[honeysql-postgres.helpers :as postgres-helpers]
|
[honeysql-postgres.helpers :as postgres-helpers]
|
||||||
[auto-ap.db.utils :refer [clj->db kebab->snake db->clj get-conn query limited-companies] :as utils]))
|
[auto-ap.db.utils :refer [clj->db kebab->snake db->clj get-conn query limited-companies] :as utils]))
|
||||||
|
|
||||||
(defn upsert! [row]
|
|
||||||
(j/db-do-prepared (get-conn)
|
|
||||||
(doto (sql/format (-> (helpers/insert-into :transactions)
|
|
||||||
(helpers/values [row])
|
|
||||||
(postgres-helpers/upsert (-> (postgres-helpers/on-conflict :id)
|
|
||||||
|
|
||||||
(postgres-helpers/do-update-set :post_date :status :check_id)
|
|
||||||
(helpers/where [:<> :EXCLUDED.check_id nil])))))
|
|
||||||
println)))
|
|
||||||
|
|
||||||
(def base-query (sql/build :select :*
|
(def base-query (sql/build :select :*
|
||||||
:from :transactions))
|
:from :transactions))
|
||||||
|
|
||||||
(defn get-all []
|
(defn get-all []
|
||||||
(query base-query))
|
(query base-query))
|
||||||
(defn base-graphql [{:keys [company-id id]}]
|
|
||||||
|
|
||||||
(cond-> base-query
|
|
||||||
(limited-companies id) (helpers/merge-where [:in :company-id (limited-companies id)])
|
|
||||||
(not (nil? company-id)) (helpers/merge-where [:= :company-id company-id])))
|
|
||||||
|
|
||||||
(defn get-graphql [{:keys [start sort-by asc limit] :as args :or {limit 100}}]
|
|
||||||
(query
|
|
||||||
(cond-> (base-graphql args)
|
|
||||||
#_#_(not (nil? sort-by) ) (add-sort-by sort-by asc)
|
|
||||||
true (assoc :limit limit)
|
|
||||||
start (assoc :offset start))))
|
|
||||||
|
|
||||||
(defn count-graphql [args]
|
|
||||||
(:count (first (query
|
|
||||||
(assoc (base-graphql args) :select [:%count.*])))))
|
|
||||||
|
|||||||
@@ -24,32 +24,3 @@
|
|||||||
|
|
||||||
(defn get-all []
|
(defn get-all []
|
||||||
(map data->fields (query base-query)))
|
(map data->fields (query base-query)))
|
||||||
|
|
||||||
(defn get-by-id [id]
|
|
||||||
(first (map data->fields (query (-> base-query
|
|
||||||
(helpers/merge-where [:= :id id]))))))
|
|
||||||
|
|
||||||
(defn find-or-insert! [row]
|
|
||||||
(let [user (-> base-query
|
|
||||||
(helpers/merge-where [:and [:= :provider-id (:provider-id row)]
|
|
||||||
[:= :provider (:provider row)]])
|
|
||||||
query
|
|
||||||
first
|
|
||||||
data->fields)]
|
|
||||||
(if user
|
|
||||||
user
|
|
||||||
(-> (j/insert! (get-conn)
|
|
||||||
:users
|
|
||||||
(-> row
|
|
||||||
fields->data
|
|
||||||
clj->db))
|
|
||||||
first
|
|
||||||
db->clj
|
|
||||||
data->fields))))
|
|
||||||
|
|
||||||
|
|
||||||
(defn update! [row]
|
|
||||||
(j/update! (get-conn)
|
|
||||||
:users
|
|
||||||
(-> row (fields->data) (clj->db))
|
|
||||||
["id = ?" (:id row)]))
|
|
||||||
|
|||||||
@@ -43,29 +43,3 @@
|
|||||||
|
|
||||||
(defn get-all []
|
(defn get-all []
|
||||||
(map data->fields (query base-query)))
|
(map data->fields (query base-query)))
|
||||||
|
|
||||||
(defn get-by-id [id]
|
|
||||||
(first (map data->fields
|
|
||||||
(query (-> base-query
|
|
||||||
(helpers/merge-where [:= :id id]))))))
|
|
||||||
|
|
||||||
(defn upsert [id data]
|
|
||||||
(-> (sql/build
|
|
||||||
:update :vendors
|
|
||||||
:set (unparse data)
|
|
||||||
:where [:= :id (if (int? id)
|
|
||||||
id
|
|
||||||
(Integer/parseInt id))])
|
|
||||||
execute!)
|
|
||||||
(get-by-id (if (int? id)
|
|
||||||
id
|
|
||||||
(Integer/parseInt id))))
|
|
||||||
|
|
||||||
(defn insert [data]
|
|
||||||
(let [[{:keys [id]}] (j/insert! (get-conn) :vendors (unparse data))]
|
|
||||||
(println "inserted vendor: " data ", id " id)
|
|
||||||
(get-by-id id)))
|
|
||||||
|
|
||||||
(defn find-with-reminders []
|
|
||||||
(query (-> base-query
|
|
||||||
(helpers/merge-where [:= :invoice-reminder-schedule "Weekly"]))))
|
|
||||||
|
|||||||
Reference in New Issue
Block a user