diff --git a/src/clj/auto_ap/parse/templates.clj b/src/clj/auto_ap/parse/templates.clj index 89d95936..4956f275 100644 --- a/src/clj/auto_ap/parse/templates.clj +++ b/src/clj/auto_ap/parse/templates.clj @@ -351,6 +351,30 @@ :keywords [#"Alt_invoice_number"] :extract (fn [wb vendor] (let [[sheet] (d/sheet-seq wb)] + (println "COUNT" (count (transduce (comp + (drop-while (fn [c] + (not (re-find #"Customer_id" (str (d/read-cell c)))))) + (drop 9) + (filter (fn [c] + (= 0 (.getColumnIndex c)))) + (filter (fn [c] + (not (str/blank? (str/trim (or (d/read-cell (d/select-cell (offset c 1 0) sheet)) "")))))) + (map (fn [c] + {:customer-identifier (str/trim (d/read-cell (d/select-cell (offset c 1 0) sheet))) + :text (d/read-cell (d/select-cell (offset c 1 0) sheet)) + :full-text (d/read-cell (d/select-cell (offset c 1 0) sheet)) + :date (u/parse-value :clj-time "MM/dd/yyyy" (str/trim (d/read-cell (d/select-cell (offset c 5 0) sheet)))) + :invoice-number (->> + (re-find #"^(?:0+([A-Z0-9]+))|([A-Z]+[A-Z0-9]+)" (str/trim (d/read-cell (d/select-cell (offset c 2 0) sheet)))) + (drop 1 ) + (filter identity) + first) + :total (str (d/read-cell (d/select-cell (offset c 7 0) sheet))) + :vendor-code vendor})) + (filter :customer-identifier)) + conj + [] + (d/cell-seq sheet)))) (transduce (comp (drop-while (fn [c] (not (re-find #"Customer_id" (str (d/read-cell c)))))) @@ -365,7 +389,7 @@ :full-text (d/read-cell (d/select-cell (offset c 1 0) sheet)) :date (u/parse-value :clj-time "MM/dd/yyyy" (str/trim (d/read-cell (d/select-cell (offset c 5 0) sheet)))) :invoice-number (->> - (re-find #"^(?:0+([A-Z0-9]+))|([A-Z]+[A-Z0-9]+)" (str/trim (d/read-cell (d/select-cell (offset c 3 0) sheet)))) + (re-find #"^(?:0+([A-Z0-9]+))|([A-Z]+[A-Z0-9]+)" (str/trim (d/read-cell (d/select-cell (offset c 2 0) sheet)))) (drop 1 ) (filter identity) first) diff --git a/src/clj/auto_ap/routes/invoices.clj b/src/clj/auto_ap/routes/invoices.clj index 2b8b094c..55b48950 100644 --- a/src/clj/auto_ap/routes/invoices.clj +++ b/src/clj/auto_ap/routes/invoices.clj @@ -178,7 +178,7 @@ :vendor-code vendor-code}))) _ (println "matching" customer-identifier "-" matching-vendor) matching-client (parse/best-match clients customer-identifier) - _ (println "New invoice matches client" matching-client) + _ (println "invoice \"" invoice-number "\"matches client" (:client/name matching-client)) matching-location (parse/best-location-match matching-client text full-text) [existing-id existing-outstanding-balance existing-status import-status] (when (and matching-client matching-location) (try