more invoices.
This commit is contained in:
@@ -79,6 +79,7 @@
|
|||||||
(let [fuzzy-match (->> clients
|
(let [fuzzy-match (->> clients
|
||||||
(mapcat (fn [{:keys [:db/id :client/matches :client/name] :as client :or {matches []}}]
|
(mapcat (fn [{:keys [:db/id :client/matches :client/name] :as client :or {matches []}}]
|
||||||
(map (fn [m]
|
(map (fn [m]
|
||||||
|
(println m invoice-client-name)
|
||||||
[client (m/jaccard (.toLowerCase invoice-client-name) (.toLowerCase m))])
|
[client (m/jaccard (.toLowerCase invoice-client-name) (.toLowerCase m))])
|
||||||
(conj matches name))))
|
(conj matches name))))
|
||||||
(filter #(< (second %) 0.25))
|
(filter #(< (second %) 0.25))
|
||||||
|
|||||||
@@ -57,7 +57,21 @@
|
|||||||
:total #"\$([0-9.]+)"}
|
:total #"\$([0-9.]+)"}
|
||||||
:parser {:date [:clj-time "MM/dd/yyyy"]}
|
:parser {:date [:clj-time "MM/dd/yyyy"]}
|
||||||
:multi #"\n"
|
: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
|
(def excel-templates
|
||||||
[{:vendor "Isp Productions"
|
[{:vendor "Isp Productions"
|
||||||
|
|||||||
@@ -161,7 +161,6 @@
|
|||||||
|
|
||||||
(defn import-uploaded-invoice [imports]
|
(defn import-uploaded-invoice [imports]
|
||||||
(let [clients (d-clients/get-all)
|
(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}]
|
transactions (reduce (fn [result {:keys [invoice-number customer-identifier total date vendor-code text full-text] :as info}]
|
||||||
(println "searching for" vendor-code)
|
(println "searching for" vendor-code)
|
||||||
@@ -172,7 +171,7 @@
|
|||||||
'[?vendor :vendor/default-expense-account ?default-expense-account]]}
|
'[?vendor :vendor/default-expense-account ?default-expense-account]]}
|
||||||
:args [(d/db (d/connect uri)) vendor-code]})
|
:args [(d/db (d/connect uri)) vendor-code]})
|
||||||
first)
|
first)
|
||||||
_ (println matching-vendor)
|
_ (println "matching" customer-identifier "-" matching-vendor)
|
||||||
matching-client (parse/best-match clients customer-identifier)
|
matching-client (parse/best-match clients customer-identifier)
|
||||||
_ (println "New invoice matches client" matching-client)
|
_ (println "New invoice matches client" matching-client)
|
||||||
matching-location (parse/best-location-match matching-client text full-text)
|
matching-location (parse/best-location-match matching-client text full-text)
|
||||||
|
|||||||
Reference in New Issue
Block a user