Add vendor pre-population for bulk code and individual edit forms
- Add vendor-changed HTMX handlers for both bulk code and individual edit - Pre-populate default account at 100% when vendor is selected and no accounts exist - Fix render-accounts-section to render from step-params correctly - Change bulk code vendor-changed from hx-get to hx-post to include form data - Add routes for vendor-changed endpoints - Update e2e tests to cover vendor pre-population - Run lein cljfmt fix across codebase
This commit is contained in:
@@ -29,10 +29,10 @@
|
||||
{:vendor-code vendor-code})))
|
||||
(let [vendor-id (or forced-vendor
|
||||
(->> (dc/q
|
||||
{:find ['?vendor]
|
||||
:in ['$ '?vendor-name]
|
||||
:where ['[?vendor :vendor/name ?vendor-name]]}
|
||||
(dc/db conn) vendor-code)
|
||||
{:find ['?vendor]
|
||||
:in ['$ '?vendor-name]
|
||||
:where ['[?vendor :vendor/name ?vendor-name]]}
|
||||
(dc/db conn) vendor-code)
|
||||
first
|
||||
first))]
|
||||
(when-not vendor-id
|
||||
@@ -40,9 +40,9 @@
|
||||
{:vendor-code vendor-code})))
|
||||
|
||||
(if-let [matching-vendor (->> (dc/q
|
||||
{:find [(list 'pull '?vendor-id d-vendors/default-read)]
|
||||
:in ['$ '?vendor-id]}
|
||||
(dc/db conn) vendor-id)
|
||||
{:find [(list 'pull '?vendor-id d-vendors/default-read)]
|
||||
:in ['$ '?vendor-id]}
|
||||
(dc/db conn) vendor-id)
|
||||
first
|
||||
first)]
|
||||
matching-vendor
|
||||
@@ -54,16 +54,16 @@
|
||||
account-number (:db/id (d-clients/exact-match account-number))
|
||||
customer-identifier (:db/id (d-clients/best-match customer-identifier))
|
||||
client-override (Long/parseLong client-override))
|
||||
_ (alog/info ::client-matched
|
||||
:account-number account-number
|
||||
_ (alog/info ::client-matched
|
||||
:account-number account-number
|
||||
:customer-identifier customer-identifier
|
||||
:client-override client-override
|
||||
:matching (when matching-client
|
||||
(dc/pull (dc/db conn) [:client/name :client/code] matching-client)))
|
||||
|
||||
:client-override client-override
|
||||
:matching (when matching-client
|
||||
(dc/pull (dc/db conn) [:client/name :client/code] matching-client)))
|
||||
|
||||
matching-vendor (match-vendor vendor-code vendor-override)
|
||||
matching-location (or (when-not (str/blank? location-override)
|
||||
location-override)
|
||||
location-override)
|
||||
(parse/best-location-match (dc/pull (dc/db conn)
|
||||
[{:client/location-matches [:location-match/location :location-match/matches]}
|
||||
:client/default-location
|
||||
@@ -97,7 +97,6 @@
|
||||
|
||||
invoice)
|
||||
|
||||
|
||||
(defn admin-only-if-multiple-clients [is]
|
||||
(let [client-count (->> is
|
||||
(map :invoice/client)
|
||||
@@ -112,8 +111,8 @@
|
||||
(map #(validate-invoice % user))
|
||||
admin-only-if-multiple-clients
|
||||
(mapv d-invoices/code-invoice)
|
||||
(mapv (fn [i] [:propose-invoice i])))]
|
||||
|
||||
(mapv (fn [i] [:propose-invoice i])))]
|
||||
|
||||
(alog/info ::creating-invoice :invoices potential-invoices)
|
||||
(let [tx (audit-transact potential-invoices user)]
|
||||
(when-not (seq (dc/q '[:find ?i
|
||||
@@ -155,7 +154,7 @@
|
||||
customer)))
|
||||
code->existing-account (by :account/numeric-code (map first (dc/q {:find ['(pull ?e [:account/numeric-code
|
||||
{:account/applicability [:db/ident]}
|
||||
:db/id])]
|
||||
:db/id])]
|
||||
:in ['$]
|
||||
:where ['[?e :account/name]]}
|
||||
(dc/db conn))))
|
||||
@@ -225,15 +224,15 @@
|
||||
(defn import-transactions-cleared-against [file]
|
||||
(let [[_ & rows] (-> file (io/reader) csv/read-csv)
|
||||
txes (transduce
|
||||
(comp
|
||||
(filter (fn [[transaction-id _]]
|
||||
(dc/pull (dc/db conn) '[:transaction/amount] (Long/parseLong transaction-id))))
|
||||
(map (fn [[transaction-id cleared-against]]
|
||||
{:db/id (Long/parseLong transaction-id)
|
||||
:transaction/cleared-against cleared-against})))
|
||||
conj
|
||||
[]
|
||||
rows)]
|
||||
(comp
|
||||
(filter (fn [[transaction-id _]]
|
||||
(dc/pull (dc/db conn) '[:transaction/amount] (Long/parseLong transaction-id))))
|
||||
(map (fn [[transaction-id cleared-against]]
|
||||
{:db/id (Long/parseLong transaction-id)
|
||||
:transaction/cleared-against cleared-against})))
|
||||
conj
|
||||
[]
|
||||
rows)]
|
||||
(audit-transact txes nil)))
|
||||
|
||||
(defn batch-upload-transactions [{{:keys [data]} :edn-params user :identity}]
|
||||
@@ -318,8 +317,6 @@
|
||||
:data (ex-data e)})
|
||||
:headers {"Content-Type" "application/edn"}}))))
|
||||
|
||||
|
||||
|
||||
(defn bulk-account-overrides [{{files :file
|
||||
files-2 "file"
|
||||
client :client
|
||||
|
||||
Reference in New Issue
Block a user