diff --git a/src/clj/auto_ap/datomic/transactions.clj b/src/clj/auto_ap/datomic/transactions.clj index 787ab527..108699ca 100644 --- a/src/clj/auto_ap/datomic/transactions.clj +++ b/src/clj/auto_ap/datomic/transactions.clj @@ -164,9 +164,13 @@ ids) (map #(update % :transaction/date c/from-date)) (map #(update % :transaction/post-date c/from-date)) - (map #(update-in % [:transaction/payment :payment/date] c/from-date)) + (map (fn [transaction] + (if (:transaction/payment transaction) + (update-in transaction [:transaction/payment :payment/date] c/from-date) + transaction))) (map #(dissoc % :transaction/id)) (group-by :db/id))] + (clojure.pprint/pprint results) (->> ids (map results) (map first)))) diff --git a/src/clj/auto_ap/graphql/transactions.clj b/src/clj/auto_ap/graphql/transactions.clj index 25dc61ae..779ab51b 100644 --- a/src/clj/auto_ap/graphql/transactions.clj +++ b/src/clj/auto_ap/graphql/transactions.clj @@ -106,6 +106,7 @@ {:transaction/payment [{:payment/status [:db/ident]} :db/id]} ] transaction-id) + _ (log/info "Unlinking" transaction) payment (-> transaction :transaction/payment ) is-autopay-payment? (some->> (doto (d/query {:query {:find ['?sp] :in ['$ '?payment] @@ -265,7 +266,9 @@ (throw (ex-info "Amounts don't match" {:validation-error "Amounts don't match"}))) (audit-transact (into [{:db/id (:db/id payment) - :payment/status :payment-status/cleared} + :payment/status :payment-status/cleared + :payment/date (coerce/to-date (first (sort [(:payment/date payment) + (:transaction/date transaction)])))} {:db/id (:db/id transaction) :transaction/payment (:db/id payment) diff --git a/src/cljs/auto_ap/views/pages/payments/table.cljs b/src/cljs/auto_ap/views/pages/payments/table.cljs index 61d98ee9..2c879d31 100644 --- a/src/cljs/auto_ap/views/pages/payments/table.cljs +++ b/src/cljs/auto_ap/views/pages/payments/table.cljs @@ -97,9 +97,11 @@ (when (or (= :pending status) (and (#{":cash" :cash ":debit" :debit} type) - (not= :voided status))) + (not= :voided status) + (not transaction))) [buttons/sl-icon {:event [::void-check check] :icon :icon-bin-2 - :class (status/class-for (get states (:id check)))}])]]])) + :class (status/class-for (get states (:id check)))}] + )]]])) (defn table [{:keys [data-page]}] (let [selected-client @(re-frame/subscribe [::subs/client])