added the ability to credit invoices. Also made it so check numbers pop up for intuit even if they're not in the description.

This commit is contained in:
2022-02-10 12:40:09 -08:00
parent 72b31fe6bd
commit e1298a1f94
5 changed files with 283 additions and 215 deletions

View File

@@ -2,6 +2,7 @@
(:require
[auto-ap.datomic :refer [conn]]
[auto-ap.import.transactions :as t]
[auto-ap.time :as atime]
[auto-ap.intuit.core :as i]
[auto-ap.utils :refer [allow-once]]
[clj-time.coerce :as coerce]
@@ -10,7 +11,9 @@
[datomic.api :as d]
[mount.core :as mount]
[unilog.context :as lc]
[yang.scheduler :as scheduler]))
[yang.scheduler :as scheduler]
[clojure.string :as str]
[clojure.tools.logging :as log]))
(defn get-intuit-bank-accounts [db]
(d/q '[:find ?external-id ?ba ?c
@@ -22,10 +25,18 @@
db))
(defn intuit->transaction [transaction]
{:transaction/description-original (:Memo/Description transaction)
:transaction/amount (Double/parseDouble (:Amount transaction))
:transaction/date (coerce/to-date (auto-ap.time/parse (:Date transaction) auto-ap.time/iso-date))
:transaction/status "POSTED"})
(let [check-number (when (not (str/blank? (:Num transaction)))
(try
(Integer/parseInt (:Num transaction))
(catch NumberFormatException e
(log/warn "Got an invalid check number " e)
nil)))]
(cond-> {:transaction/description-original (:Memo/Description transaction)
:transaction/amount (Double/parseDouble (:Amount transaction))
:transaction/date (coerce/to-date (atime/parse (:Date transaction) atime/iso-date))
:transaction/status "POSTED"}
check-number (assoc :transaction/check-number check-number))))
(defn intuits->transactions [transactions bank-account-id client-id]
(->> transactions