Supports importing mama lu

This commit is contained in:
Bryce Covert
2019-10-21 23:25:36 -07:00
parent 8df6fb0279
commit 823d4998a7
4 changed files with 127 additions and 42 deletions

View File

@@ -0,0 +1,46 @@
(ns auto-ap.parse.csv
(:require [auto-ap.parse.util :as u]
[clojure.data.csv :as csv]
[clojure.java.io :as io]
[clojure.string :as str]))
(defn determine
[[header :as z]]
(prn header)
(cond (str/includes? (second header) "Customer's PO No.")
:mama-lus
:else
nil))
(defmulti parse-csv
determine
:default (fn default [rows]
nil))
(defmethod parse-csv :mama-lus
[rows]
(println "MAMA LU")
(transduce
(comp (drop 1)
(map (fn [[_ po-number despatch-number invoice-number invoice-date customer value :as row]]
{:vendor-code "Mama Lu's Foods"
:customer-identifier customer
:invoice-number (str invoice-number " " po-number)
:date (u/parse-value :clj-time "MM/dd/yy HH:ss" invoice-date)
:total value
:text (str/join " " row)})))
conj
[]
rows))
(defmethod parse-csv nil
[rows]
nil)
(defn parse-file [file filename]
(println "HEREERE")
(with-open [reader (io/reader file)]
(let [rows (csv/read-csv reader :separator \,)]
(parse-csv rows))))