diff --git a/src/clj/auto_ap/ssr/transaction/edit.clj b/src/clj/auto_ap/ssr/transaction/edit.clj index 045e2901..fed16332 100644 --- a/src/clj/auto_ap/ssr/transaction/edit.clj +++ b/src/clj/auto_ap/ssr/transaction/edit.clj @@ -60,6 +60,12 @@ (defn check-vendor-default-account [vendor-id] (some? (:vendor/default-account (get-vendor vendor-id)))) +(defn require-approval [s] + [:and s + [:fn (fn [{:transaction/keys [accounts approval-status]}] + (or (not= approval-status :transaction-approval-status/approved) + (seq accounts)))]]) + (def edit-form-schema (mc/schema [:and @@ -99,8 +105,7 @@ [:autopay-invoice-ids {:decode/string (fn [x] (edn/read-string x))} [:vector {:coerce? true} entity-id]]]] [:link-payment [:map [:payment-id entity-id]]] - [:manual [:map - ]]]])) + [:manual (require-approval [:map])]]])) (defn clientize-vendor [{:vendor/keys [terms-overrides automatically-paid-when-due default-account account-overrides] :as vendor} client-id] @@ -253,11 +258,6 @@ (defn account-balance [request] (html-response (account-balance* request))) -(defn require-approval [s] - [:and s - [:fn (fn [{:transaction/keys [accounts approval-status]}] - (or (not= approval-status :approved) - (seq accounts)))]]) (defrecord BasicDetailsStep [linear-wizard] mm/ModalWizardStep (step-name [_] @@ -1058,8 +1058,8 @@ (exception->4xx #(assert-can-see-client (:identity request) client-id)) (exception->4xx #(assert-not-locked client-id (:transaction/date existing-tx))) - (when (and (= :approved (keyword (:transaction/approval-status tx-data))) - (not (seq (:transaction/accounts tx-data)))) + (when (and (= :transaction-approval-status/approved (keyword (:transaction/approval-status tx-data))) + (not (seq (:transaction/accounts tx-data)))) (throw (ex-info "Approved transactions must have accounts assigned." {:validation-error "Approved transactions must have accounts assigned."})))