From 2e9659557d74f42babdca9a44cee596205c8efed Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Wed, 8 Jan 2020 07:10:56 -0800 Subject: [PATCH] Adding new types. --- src/clj/auto_ap/parse/templates.clj | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/clj/auto_ap/parse/templates.clj b/src/clj/auto_ap/parse/templates.clj index a0bba1a6..6fb6cf1c 100644 --- a/src/clj/auto_ap/parse/templates.clj +++ b/src/clj/auto_ap/parse/templates.clj @@ -1,5 +1,6 @@ (ns auto-ap.parse.templates (:require [dk.ative.docjure.spreadsheet :as d] + [auto-ap.parse.util :as u] [clojure.string :as str]) (:import (org.apache.poi.ss.util CellAddress))) @@ -50,7 +51,7 @@ :keywords [#"DVW Commercial"] :extract {:date #"\s*([0-9]+/[0-9]+/[0-9]+)" :customer-identifier #"Bill To:[^\n]+\n[^\n]*\n\s*([\w ]+) \(" - :invoice-number #"Invoice\s*\n\s*([\w\./]+)*" + :invoice-number #"Invoice\s*\n\s*[S]?([\w\./]+)*" :total #"Total:\s+\$ ([0-9.]+)"} :parser {:date [:clj-time "MM/dd/yy"]}} @@ -298,4 +299,29 @@ :vendor-code vendor})))) conj [] + (d/cell-seq sheet))))} + {:vendor "Chef's Choice Produce Co" + :keywords [#"Alt_invoice_number"] + :extract (fn [wb vendor] + (let [[sheet] (d/sheet-seq wb)] + (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] + (doto {: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 (str/trim (d/read-cell (d/select-cell (offset c 3 0) sheet))) + :total (str (d/read-cell (d/select-cell (offset c 7 0) sheet))) + :vendor-code vendor} + println))) + (filter :customer-identifier)) + conj + [] (d/cell-seq sheet))))}])