scalar type for id simplifies parsing longs.

This commit is contained in:
Bryce Covert
2018-11-12 08:26:47 -08:00
parent 2263a5f24a
commit 6eaff40608
12 changed files with 80 additions and 81 deletions

View File

@@ -31,8 +31,8 @@
(defn add-invoice [context {{:keys [total invoice_number location client_id vendor_id vendor_name date] :as in} :invoice} value]
(when (seq (d-invoices/find-conflicting {:invoice/invoice-number invoice_number
:invoice/vendor (Long/parseLong vendor_id)
:invoice/client (Long/parseLong client_id)}))
:invoice/vendor vendor_id
:invoice/client client_id}))
(throw (ex-info (str "Invoice '" invoice_number "' already exists.") {:invoice-number invoice_number})))
(let [_ (assert-can-see-company (:id context) client_id)
vendor (d-vendors/get-by-id vendor_id)
@@ -42,8 +42,8 @@
(throw (ex-info (str "Vendor '" (:vendor/name vendor) "' does not have a default expense acount.") {:vendor-id vendor_id} )))
transaction [{:db/id "invoice"
:invoice/invoice-number invoice_number
:invoice/client (Long/parseLong client_id)
:invoice/vendor (Long/parseLong vendor_id)
:invoice/client client_id
:invoice/vendor vendor_id
:invoice/total total
:invoice/outstanding-balance total
:invoice/status :invoice-status/unpaid
@@ -64,7 +64,7 @@
(let [invoice (d-invoices/get-by-id id)
_ (when (seq (doto (d-invoices/find-conflicting {:db/id (Long/parseLong id)
_ (when (seq (doto (d-invoices/find-conflicting {:db/id id
:invoice/invoice-number invoice_number
:invoice/vendor (:db/id (:invoice/vendor invoice))
:invoice/client (:db/id (:invoice/client invoice))})
@@ -72,7 +72,7 @@
(throw (ex-info (str "Invoice '" invoice_number "' already exists.") {:invoice-number invoice_number})))
paid-amount (- (:invoice/total invoice) (:invoice/outstanding-balance invoice))
_ (assert-can-see-company (:id context) (:db/id (:client invoice)))
updated-invoice (d-invoices/update {:db/id (Long/parseLong id)
updated-invoice (d-invoices/update {:db/id id
:invoice/invoice-number invoice_number
:invoice/date (coerce/to-date (parse date iso-date))
:invoice/total total
@@ -83,7 +83,7 @@
(defn void-invoice [context {id :invoice_id} value]
(let [invoice (d-invoices/get-by-id id)
_ (assert-can-see-company (:id context) (:company-id invoice))
updated-invoice (d-invoices/update {:db/id (Long/parseLong id)
updated-invoice (d-invoices/update {:db/id id
:invoice/total 0.0
:invoice/outstanding-balance 0.0
:invoice/status :invoice-status/voided})]
@@ -96,12 +96,14 @@
(defn edit-expense-accounts [context args value]
;; TODO - Can expense account id be used as a unique field? It may compose with component, meaning
;; that you don't have to figure out which ones to delete and which ones to add. Just set to 0.
(assert-can-see-company (:id context) (:db/id (:client (d-invoices/get-by-id (:invoice_id args)))))
(let [current-expense-accounts (:invoice/expense-accounts (d-invoices/get-by-id (:invoice_id args)))
invoice-id (Long/parseLong (:invoice_id args))
invoice-id (:invoice_id args)
specified-ids (->> (:expense_accounts args)
(map #(some-> % :id (Long/parseLong )))
(map :id)
set)
existing-ids (->> current-expense-accounts
@@ -114,7 +116,7 @@
{:db/id invoice-id
:invoice/expense-accounts [#:invoice-expense-account {
:amount (Double/parseDouble amount)
:db/id (some-> id Long/parseLong)
:db/id id
:expense-account-id expense_account_id
:location location}
]}