got tests to pass again.
This commit is contained in:
@@ -109,16 +109,16 @@
|
|||||||
(:transaction/amount transaction)
|
(:transaction/amount transaction)
|
||||||
100))))]
|
100))))]
|
||||||
(if (= "Shared" (:location ar))
|
(if (= "Shared" (:location ar))
|
||||||
(do
|
|
||||||
(log/info "here" valid-locations)
|
|
||||||
(->> valid-locations
|
(->> valid-locations
|
||||||
(map
|
(map
|
||||||
(fn [cents location]
|
(fn [cents location]
|
||||||
{:transaction-account/account (:account_id ar)
|
{:db/id (random-tempid)
|
||||||
|
:transaction-account/account (:account_id ar)
|
||||||
:transaction-account/amount (* 0.01 cents)
|
:transaction-account/amount (* 0.01 cents)
|
||||||
:transaction-account/location location})
|
:transaction-account/location location})
|
||||||
(rm/spread-cents cents-to-distribute (count valid-locations)))))
|
(rm/spread-cents cents-to-distribute (count valid-locations))))
|
||||||
[(cond-> {:transaction-account/account (:account_id ar)
|
[(cond-> {:db/id (random-tempid)
|
||||||
|
:transaction-account/account (:account_id ar)
|
||||||
:transaction-account/amount (* 0.01 cents-to-distribute)}
|
:transaction-account/amount (* 0.01 cents-to-distribute)}
|
||||||
(:location ar) (assoc :transaction-account/location (:location ar)))])))
|
(:location ar) (assoc :transaction-account/location (:location ar)))])))
|
||||||
account-rules))
|
account-rules))
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
accounts (if (seq accounts)
|
accounts (if (seq accounts)
|
||||||
(update-in accounts [(dec (count accounts)) :transaction-account/amount] #(+ % (double leftover)))
|
(update-in accounts [(dec (count accounts)) :transaction-account/amount] #(+ % (double leftover)))
|
||||||
[])]
|
[])]
|
||||||
[:reset (:db/id transaction) :transaction/accounts accounts])))
|
accounts)))
|
||||||
|
|
||||||
(defn bulk-code-transactions [context args _]
|
(defn bulk-code-transactions [context args _]
|
||||||
(assert-admin (:id context))
|
(assert-admin (:id context))
|
||||||
@@ -173,12 +173,11 @@
|
|||||||
|
|
||||||
(log/info "Bulk coding " (count all-ids) args)
|
(log/info "Bulk coding " (count all-ids) args)
|
||||||
(transact-batch-with-ledger
|
(transact-batch-with-ledger
|
||||||
(mapcat (fn [i]
|
(map (fn [i]
|
||||||
(cond-> [(cond-> i
|
`(upsert-entity ~(cond-> i
|
||||||
(:approval_status args) (assoc :transaction/approval-status (enum->keyword (:approval_status args) "transaction-approval-status"))
|
(:approval_status args) (assoc :transaction/approval-status (enum->keyword (:approval_status args) "transaction-approval-status"))
|
||||||
(:vendor args) (assoc :transaction/vendor (:vendor args)))]
|
(:vendor args) (assoc :transaction/vendor (:vendor args))
|
||||||
|
(seq (:accounts args)) (assoc :transaction/accounts (maybe-code-accounts i (:accounts args) locations)))))
|
||||||
(seq (:accounts args)) (conj (maybe-code-accounts i (:accounts args) locations))))
|
|
||||||
transactions)
|
transactions)
|
||||||
(:id context))
|
(:id context))
|
||||||
{:message (str "Successfully coded " (count all-ids) " transactions.")}))
|
{:message (str "Successfully coded " (count all-ids) " transactions.")}))
|
||||||
@@ -438,7 +437,7 @@
|
|||||||
(when-not (dollars= (- (:transaction/amount transaction))
|
(when-not (dollars= (- (:transaction/amount transaction))
|
||||||
invoice-amount)
|
invoice-amount)
|
||||||
(throw (ex-info "Amounts don't match" {:validation-error "Amounts don't match"})))
|
(throw (ex-info "Amounts don't match" {:validation-error "Amounts don't match"})))
|
||||||
(let [payment-tx (i-transactions/add-new-payment [(dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id)]
|
(let [payment-tx (i-transactions/add-new-payment (dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id)
|
||||||
(map (fn [id]
|
(map (fn [id]
|
||||||
(let [entity (dc/pull db [:invoice/vendor :db/id :invoice/total] id)]
|
(let [entity (dc/pull db [:invoice/vendor :db/id :invoice/total] id)]
|
||||||
[(-> entity :invoice/vendor :db/id)
|
[(-> entity :invoice/vendor :db/id)
|
||||||
@@ -476,7 +475,7 @@
|
|||||||
(when (:transaction/payment transaction)
|
(when (:transaction/payment transaction)
|
||||||
(throw (ex-info "Transaction already linked" {:validation-error "Transaction already linked"})))
|
(throw (ex-info "Transaction already linked" {:validation-error "Transaction already linked"})))
|
||||||
|
|
||||||
(let [payment-tx (i-transactions/add-new-payment [(dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id)]
|
(let [payment-tx (i-transactions/add-new-payment (dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id)
|
||||||
(map (fn [id]
|
(map (fn [id]
|
||||||
(let [entity (dc/pull db [:invoice/vendor :db/id :invoice/total] id)]
|
(let [entity (dc/pull db [:invoice/vendor :db/id :invoice/total] id)]
|
||||||
[(-> entity :invoice/vendor :db/id)
|
[(-> entity :invoice/vendor :db/id)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
(:require
|
(:require
|
||||||
[auto-ap.datomic :refer [audit-transact conn random-tempid remove-nils]]
|
[auto-ap.datomic :refer [audit-transact conn random-tempid remove-nils]]
|
||||||
[auto-ap.datomic.accounts :as a]
|
[auto-ap.datomic.accounts :as a]
|
||||||
|
[iol-ion.tx :refer [upsert-entity]]
|
||||||
[auto-ap.datomic.checks :as d-checks]
|
[auto-ap.datomic.checks :as d-checks]
|
||||||
[auto-ap.datomic.transaction-rules :as tr]
|
[auto-ap.datomic.transaction-rules :as tr]
|
||||||
[auto-ap.datomic.transactions :as d-transactions]
|
[auto-ap.datomic.transactions :as d-transactions]
|
||||||
@@ -109,10 +110,20 @@
|
|||||||
(first considerations)
|
(first considerations)
|
||||||
[])))
|
[])))
|
||||||
|
|
||||||
(defn add-new-payment [[transaction :as tx] [[vendor] :as invoice-payments] bank-account-id client-id]
|
(defn add-new-payment [transaction [[vendor] :as invoice-payments] bank-account-id client-id]
|
||||||
(log/info "Adding a new payment for transaction " (:transaction/id transaction) " and invoices " invoice-payments)
|
(log/info "Adding a new payment for transaction " (:transaction/id transaction) " and invoices " invoice-payments)
|
||||||
(let [payment-id (random-tempid)]
|
(let [payment-id (random-tempid)]
|
||||||
(-> tx
|
(-> [`(upsert-entity ~(assoc transaction
|
||||||
|
:transaction/payment payment-id
|
||||||
|
:transaction/approval-status :transaction-approval-status/approved
|
||||||
|
:transaction/vendor vendor
|
||||||
|
:transaction/location "A"
|
||||||
|
:transaction/accounts
|
||||||
|
[#:transaction-account
|
||||||
|
{:db/id (random-tempid)
|
||||||
|
:account (:db/id (a/get-account-by-numeric-code-and-sets 21000 ["default"]))
|
||||||
|
:location "A"
|
||||||
|
:amount (Math/abs (:transaction/amount transaction))}]))]
|
||||||
|
|
||||||
(conj {:payment/bank-account bank-account-id
|
(conj {:payment/bank-account bank-account-id
|
||||||
:payment/client client-id
|
:payment/client client-id
|
||||||
@@ -129,17 +140,7 @@
|
|||||||
{:db/id invoice-id
|
{:db/id invoice-id
|
||||||
:invoice/outstanding-balance 0.0
|
:invoice/outstanding-balance 0.0
|
||||||
:invoice/status :invoice-status/paid}])
|
:invoice/status :invoice-status/paid}])
|
||||||
invoice-payments))
|
invoice-payments)))))
|
||||||
(update 0 assoc
|
|
||||||
:transaction/payment payment-id
|
|
||||||
:transaction/approval-status :transaction-approval-status/approved
|
|
||||||
:transaction/vendor vendor
|
|
||||||
:transaction/location "A")
|
|
||||||
(conj [:reset (:db/id transaction) :transaction/accounts
|
|
||||||
[#:transaction-account
|
|
||||||
{:account (:db/id (a/get-account-by-numeric-code-and-sets 21000 ["default"]))
|
|
||||||
:location "A"
|
|
||||||
:amount (Math/abs (:transaction/amount transaction))}]]))))
|
|
||||||
|
|
||||||
(defn extract-check-number [{:transaction/keys [description-original]}]
|
(defn extract-check-number [{:transaction/keys [description-original]}]
|
||||||
(if-let [[_ _ check-number] (re-find #"(?i)check(card|[^0-9]+([0-9]*))" description-original)]
|
(if-let [[_ _ check-number] (re-find #"(?i)check(card|[^0-9]+([0-9]*))" description-original)]
|
||||||
|
|||||||
Reference in New Issue
Block a user