you can't add an existing invoice.

This commit is contained in:
Bryce Covert
2018-07-30 09:23:56 -07:00
parent 5cac08437f
commit 9e00372857
5 changed files with 36 additions and 5 deletions

View File

@@ -63,6 +63,15 @@
(defn get-all []
(query base-query))
(defn find-conflicting [{:keys [id invoice-number company-id vendor-id]}]
(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]))))

View File

@@ -13,6 +13,10 @@
(vendors/insert {:name vendor-name :default-expense-account 0})))
(defn add-invoice [context {{:keys [total invoice_number location company_id vendor_id vendor_name date] :as in} :invoice} value]
(when (seq (invoices/find-conflicting {:invoice-number invoice_number
:vendor-id vendor_id
:company-id company_id}))
(throw (ex-info "that invoice already exists" {:invoice-number invoice_number})))
(let [vendor (-create-or-get-vendor vendor_id vendor_name)
_ (assert-can-see-company (:id context) company_id)
company (companies/get-by-id company_id)