more invoices.

This commit is contained in:
Bryce Covert
2019-10-24 21:05:01 -07:00
parent aa90c1b4c1
commit 10ee974eaf
3 changed files with 17 additions and 3 deletions

View File

@@ -79,6 +79,7 @@
(let [fuzzy-match (->> clients
(mapcat (fn [{:keys [:db/id :client/matches :client/name] :as client :or {matches []}}]
(map (fn [m]
(println m invoice-client-name)
[client (m/jaccard (.toLowerCase invoice-client-name) (.toLowerCase m))])
(conj matches name))))
(filter #(< (second %) 0.25))

View File

@@ -57,7 +57,21 @@
:total #"\$([0-9.]+)"}
:parser {:date [:clj-time "MM/dd/yyyy"]}
:multi #"\n"
:multi-match? #"^[0-9]+/[0-9]+/[0-9]+\s+(\d+)"}])
:multi-match? #"^[0-9]+/[0-9]+/[0-9]+\s+(\d+)"}
{:vendor "Performance Food Group"
:keywords [#"performancefoodservice"]
:extract {:date #"DELIVER TO[^\n]+\n.+?(?=[0-9]+/[0-9]+/[0-9]+)([0-9]+/[0-9]+/[0-9]+)"
:customer-identifier #"DELIVER TO[^\n]+\n\s*[\S ]+?(?=\s{2,}([\S ]+?)\s{2,})" ;; ([\S ]+)\s{2,}
:invoice-number #"DELIVER TO[^\n]+\n.+?(?=\d+)(\d+)\s*\n"
:total #"([0-9.]+)\s+Status Code"}
:parser {#_#_:date [:clj-time "MM/dd/yy"]}}
{:vendor "US Foods"
:keywords [#"US Foods"]
:extract {:date #"INVOICE NUMBER[^\n]+\n\n\d+\s+\d+\s+([0-9]+/[0-9]+/[0-9]+)"
:customer-identifier #"BILL TO[^\n]+\n([\S ]+?)(?=\s{2,})" ;; ([\S ]+)\s{2,}
:invoice-number #"INVOICE NUMBER[^\n]+\n\n\d+\s+(\d+)"
:total #"DELIVERED AMOUNT\s+\$([0-9.]+)"}
:parser {:date [:clj-time "MM/dd/yyyy"]}}])
(def excel-templates
[{:vendor "Isp Productions"

View File

@@ -161,7 +161,6 @@
(defn import-uploaded-invoice [imports]
(let [clients (d-clients/get-all)
_ (println imports)
transactions (reduce (fn [result {:keys [invoice-number customer-identifier total date vendor-code text full-text] :as info}]
(println "searching for" vendor-code)
@@ -172,7 +171,7 @@
'[?vendor :vendor/default-expense-account ?default-expense-account]]}
:args [(d/db (d/connect uri)) vendor-code]})
first)
_ (println matching-vendor)
_ (println "matching" customer-identifier "-" matching-vendor)
matching-client (parse/best-match clients customer-identifier)
_ (println "New invoice matches client" matching-client)
matching-location (parse/best-location-match matching-client text full-text)