Adds memo field
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -824,6 +824,11 @@
|
||||
:db/cardinality #:db{:ident :db.cardinality/one},
|
||||
:db/doc "The type of entity that created this entry",
|
||||
:db/ident :journal-entry/source}
|
||||
{:db/valueType :db.type/string,
|
||||
:db/cardinality :db.cardinality/one,
|
||||
:db/doc "A user-entered description",
|
||||
:db/ident :journal-entry/memo}
|
||||
|
||||
{:db/valueType #:db{:ident :db.type/ref},
|
||||
:db/cardinality #:db{:ident :db.cardinality/one},
|
||||
:db/doc "The client for the ledger",
|
||||
@@ -1283,6 +1288,10 @@
|
||||
:db/cardinality #:db{:ident :db.cardinality/one},
|
||||
:db/doc "Date that the transaction showed up",
|
||||
:db/ident :transaction/date}
|
||||
{:db/valueType :db.type/string,
|
||||
:db/cardinality :db.cardinality/one,
|
||||
:db/doc "A user-entered description",
|
||||
:db/ident :transaction/memo}
|
||||
{:db/valueType #:db{:ident :db.type/instant},
|
||||
:db/cardinality #:db{:ident :db.cardinality/one},
|
||||
:db/doc "Date that the transaction posted",
|
||||
|
||||
@@ -359,7 +359,7 @@
|
||||
(when (nil? (:account_id trans-account))
|
||||
(throw (ex-info "Account is missing account" {:validation-error "Account is missing account"})))))
|
||||
|
||||
(defn edit-transaction [context {{:keys [id accounts vendor_id approval_status forecast_match]} :transaction} _]
|
||||
(defn edit-transaction [context {{:keys [id accounts vendor_id approval_status memo forecast_match]} :transaction} _]
|
||||
(let [existing-transaction (d-transactions/get-by-id id)
|
||||
_ (assert-can-see-client (:id context) (:transaction/client existing-transaction) )
|
||||
_ (assert-valid-expense-accounts accounts)
|
||||
@@ -387,6 +387,7 @@
|
||||
|
||||
(audit-transact (cond-> [[:upsert-transaction {:db/id id
|
||||
:transaction/vendor vendor_id
|
||||
:transaction/memo memo
|
||||
:transaction/approval-status (some->> approval_status
|
||||
name
|
||||
snake->kebab
|
||||
@@ -571,6 +572,7 @@
|
||||
(def objects
|
||||
{:transaction {:fields {:id {:type :id}
|
||||
:amount {:type 'String}
|
||||
:memo {:type 'String}
|
||||
:is_locked {:type 'Boolean}
|
||||
:description_original {:type 'String}
|
||||
:description_simple {:type 'String}
|
||||
@@ -674,6 +676,7 @@
|
||||
:unresolved {:type 'Boolean}}}
|
||||
:edit_transaction
|
||||
{:fields {:id {:type :id}
|
||||
:memo {:type 'String}
|
||||
:vendor_id {:type :id}
|
||||
:forecast_match {:type :id}
|
||||
:approval_status {:type :transaction_approval_status}
|
||||
|
||||
@@ -303,6 +303,7 @@ args
|
||||
(def default-read
|
||||
'[:journal-entry/amount
|
||||
:journal-entry/alternate-description
|
||||
:journal-entry/memo
|
||||
:journal-entry/source
|
||||
:journal-entry/external-id
|
||||
:db/id
|
||||
@@ -583,7 +584,10 @@ args
|
||||
:transactions)
|
||||
{:exact-match-id (:db/id (:journal-entry/original-entity i))})
|
||||
:color :primary
|
||||
:content (format "Transaction '%s'" (-> i :journal-entry/original-entity :transaction/description-original))}))))
|
||||
:content (format "Transaction '%s'" (-> i :journal-entry/original-entity :transaction/description-original))})
|
||||
(-> i :journal-entry/memo)
|
||||
(conj {:color :secondary
|
||||
:content (str "Memo: " (:journal-entry/memo i))}))))
|
||||
:render-for #{:html}}]}))
|
||||
|
||||
(def row* (partial helper/row* grid-page))
|
||||
@@ -17,16 +17,15 @@
|
||||
[auto-ap.ssr.svg :as svg]
|
||||
[auto-ap.ssr.utils :refer [apply-middleware-to-all-handlers check-allowance
|
||||
check-location-belongs clj-date-schema entity-id
|
||||
html-response main-transformer modal-response
|
||||
money wrap-form-4xx-2 wrap-schema-enforce]]
|
||||
html-response modal-response money strip
|
||||
wrap-form-4xx-2 wrap-schema-enforce]]
|
||||
[auto-ap.time :as atime]
|
||||
[bidi.bidi :as bidi]
|
||||
[clj-time.coerce :as coerce]
|
||||
[clojure.string :as str]
|
||||
[datomic.api :as dc]
|
||||
[iol-ion.query :refer [dollars=]]
|
||||
[iol-ion.utils :refer [remove-nils]]
|
||||
[malli.core :as m])
|
||||
[iol-ion.utils :refer [remove-nils]])
|
||||
(:import
|
||||
[java.util UUID]))
|
||||
|
||||
@@ -36,6 +35,7 @@
|
||||
[:db/id {:optional true} [:maybe entity-id]]
|
||||
[:journal-entry/client {:optional false} [:entity-map {:pull [:db/id :client/name :client/locations] }]]
|
||||
[:journal-entry/date clj-date-schema]
|
||||
[:journal-entry/memo {:optional true} [:maybe [ :string {:decode/string strip}]]]
|
||||
[:journal-entry/vendor {:optional false :default nil}
|
||||
[:entity-map {:pull [:db/id :vendor/name] }]]
|
||||
[:journal-entry/amount {:min 0.01}
|
||||
@@ -245,6 +245,18 @@
|
||||
:class "w-24"
|
||||
:error? (fc/field-errors)
|
||||
:placeholder "212.44"})]))
|
||||
(fc/with-field :journal-entry/memo
|
||||
[:div.w-96
|
||||
(com/validated-field
|
||||
{:label "Memo"
|
||||
:errors (fc/field-errors)}
|
||||
[:div.w-96
|
||||
(com/text-input {:name (fc/field-name)
|
||||
:error? (fc/error?)
|
||||
:class "w-96"
|
||||
:placeholder "A custom note"
|
||||
:url (bidi/path-for ssr-routes/only-routes :company-search)
|
||||
:value (fc/field-value) })])])
|
||||
(fc/with-field :journal-entry/line-items
|
||||
(com/validated-field
|
||||
{:errors (fc/field-errors)}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
(def transaction-read
|
||||
[:id
|
||||
:amount
|
||||
:memo
|
||||
:location
|
||||
:approval-status
|
||||
:check-number
|
||||
|
||||
@@ -31,13 +31,14 @@
|
||||
(re-frame/reg-sub
|
||||
::submit-query
|
||||
:<- [::forms/form ::form]
|
||||
(fn [{{:keys [id vendor accounts approval-status forecast-match]} :data}]
|
||||
(fn [{{:keys [id vendor accounts approval-status forecast-match memo ]} :data}]
|
||||
{:venia/operation {:operation/type :mutation
|
||||
:operation/name "EditTransaction"}
|
||||
:venia/queries [{:query/data
|
||||
[:edit-transaction
|
||||
{:transaction {:id id
|
||||
:vendor-id (:id vendor)
|
||||
:memo memo
|
||||
:approval-status approval-status
|
||||
:forecast-match (:id forecast-match)
|
||||
:accounts (map
|
||||
@@ -59,6 +60,7 @@
|
||||
(forms/start-form db ::form
|
||||
(-> which
|
||||
(select-keys [:vendor :amount :payment :client :description-original
|
||||
:memo
|
||||
:check-number
|
||||
:yodlee-merchant :id :potential-payment-matches
|
||||
:plaid-merchant
|
||||
@@ -375,6 +377,10 @@
|
||||
[date-picker {
|
||||
:disabled "disabled"}]]
|
||||
|
||||
[form-builder/field-v2 {:field [:memo]}
|
||||
"Memo"
|
||||
[:input.input {:type "text"}]]
|
||||
|
||||
|
||||
(when (and (:payment data)
|
||||
(or is-admin? is-power-user?))
|
||||
|
||||
Reference in New Issue
Block a user