switching to use real dates.
This commit is contained in:
@@ -35,7 +35,9 @@
|
||||
(if company
|
||||
(-> base-query
|
||||
(helpers/merge-where [:= :imported true])
|
||||
(helpers/merge-where [:= :company-id company]))
|
||||
(helpers/merge-where [:= :company-id (if (int? company)
|
||||
company
|
||||
(Integer/parseInt company))]))
|
||||
(-> base-query
|
||||
(helpers/merge-where [:= :imported true])))))
|
||||
|
||||
@@ -44,7 +46,9 @@
|
||||
(if company
|
||||
(-> base-query
|
||||
(helpers/merge-where [:= :imported false])
|
||||
(helpers/merge-where [:= :company-id company]))
|
||||
(helpers/merge-where [:= :company-id (if (int? company)
|
||||
company
|
||||
(Integer/parseInt company))]))
|
||||
(-> base-query
|
||||
(helpers/merge-where [:= :imported false])))))
|
||||
|
||||
|
||||
@@ -3,9 +3,23 @@
|
||||
[auto-ap.parse.templates :as t]
|
||||
[clj-fuzzy.metrics :as m]
|
||||
[clojure.java.shell :as sh]
|
||||
[clojure.string :as str]))
|
||||
[clojure.string :as str]
|
||||
[clj-time.format :as f]
|
||||
[clj-time.core :as time]))
|
||||
|
||||
|
||||
(defmulti parse-value (fn [method _ _]
|
||||
method))
|
||||
|
||||
(defmethod parse-value :clj-time
|
||||
[_ format value]
|
||||
(time/from-time-zone (f/parse (f/formatter format) value)
|
||||
(time/time-zone-for-id "America/Los_Angeles")))
|
||||
|
||||
(defmethod parse-value nil
|
||||
[_ _ value]
|
||||
value)
|
||||
|
||||
|
||||
(defn template-applies? [text {:keys [keywords]}]
|
||||
(every? #(re-find % text) keywords))
|
||||
@@ -20,8 +34,10 @@
|
||||
:extract
|
||||
(reduce-kv
|
||||
(fn [result k v]
|
||||
(assoc result k (some-> (first (map second (re-seq v text)))
|
||||
str/trim )))
|
||||
(let [value (some-> (first (map second (re-seq v text)))
|
||||
str/trim )
|
||||
[value-parser parser-params] (-> template :parser k)]
|
||||
(assoc result k (parse-value value-parser parser-params value))))
|
||||
{:vendor-code (:vendor template)}))]))
|
||||
|
||||
(defn parse [text]
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
(ns auto-ap.parse.templates)
|
||||
|
||||
|
||||
(def pdf-templates
|
||||
[{:vendor "CHFW"
|
||||
:keywords [#"CHEF'S WAREHOUSE"]
|
||||
:extract {:total #"2 WKS C\.C\.\s+([\d.,]+)"
|
||||
:customer-identifier #"\n([A-Z][A-Z ]+)\s{2,}"
|
||||
:date #"\s+([0-9]+/[0-9]+/[0-9]+)"
|
||||
:invoice-number #"\s+[0-9]+/[0-9]+/[0-9]+\s+([0-9]+)"}}
|
||||
:invoice-number #"\s+[0-9]+/[0-9]+/[0-9]+\s+([0-9]+)"}
|
||||
:parser {:date [:clj-time "MM/dd/yyyy"]}}
|
||||
|
||||
{:vendor "GGM"
|
||||
:keywords [#"Golden Gate Meat"]
|
||||
:extract {:total #"Invoice Total\:\s+\$([\d.,]+)"
|
||||
:customer-identifier #"Bill To\s*:\s*([\w ]+)\s{2,}"
|
||||
:date #"Printed:\s+([0-9]+/[0-9]+/[0-9]+)"
|
||||
:invoice-number #"Invoice\s+[^\n]+\n[^\n]+\n\s+([0-9]+)"}}
|
||||
:invoice-number #"Invoice\s+[^\n]+\n[^\n]+\n\s+([0-9]+)"}
|
||||
:parser {:date [:clj-time "MM/dd/yyyy"]}}
|
||||
|
||||
{:vendor "CINTAS"
|
||||
:keywords [#"CINTAS CORPORATION"]
|
||||
@@ -21,6 +24,7 @@
|
||||
:customer-identifier #"BILL TO\s*:\s{2,}([\w ]+)\s{2,}"
|
||||
:date #"INVOICE DATE\s*\n.*\s+([0-9]+/[0-9]+/[0-9]+)"
|
||||
:total #"INVOICE TOTAL\s+([0-9.]+)"}
|
||||
:parser {:date [:clj-time "MM/dd/yy"]}
|
||||
:multi #"\f\f"}])
|
||||
|
||||
(def excel-templates
|
||||
|
||||
Reference in New Issue
Block a user