Add vendor pre-population for bulk code and individual edit forms
- Add vendor-changed HTMX handlers for both bulk code and individual edit - Pre-populate default account at 100% when vendor is selected and no accounts exist - Fix render-accounts-section to render from step-params correctly - Change bulk code vendor-changed from hx-get to hx-post to include form data - Add routes for vendor-changed endpoints - Update e2e tests to cover vendor pre-population - Run lein cljfmt fix across codebase
This commit is contained in:
@@ -23,7 +23,6 @@
|
||||
(str/includes? (str header) "Document Number")
|
||||
:philz
|
||||
|
||||
|
||||
(str/includes? (str header) "DISCOUNT_MESSAGE")
|
||||
:wismettac
|
||||
|
||||
@@ -35,7 +34,7 @@
|
||||
|
||||
(str/includes? (str header) "PARENT CUSTOMER NAME")
|
||||
:worldwide
|
||||
|
||||
|
||||
:else
|
||||
nil)]
|
||||
(alog/info ::csv-type-determined :type csv-type)
|
||||
@@ -44,18 +43,17 @@
|
||||
(defmulti parse-csv
|
||||
determine
|
||||
:default #_{:clj-kondo/ignore [:unused-binding]}
|
||||
(fn default [rows]
|
||||
nil))
|
||||
(fn default [rows]
|
||||
nil))
|
||||
|
||||
(defn parse-date-fallover [d fmts]
|
||||
(when-let [valid-fmt (->> fmts
|
||||
(filter (fn [f]
|
||||
(try
|
||||
(u/parse-value :clj-time f d)
|
||||
(catch Exception _
|
||||
nil))
|
||||
))
|
||||
(first))]
|
||||
(filter (fn [f]
|
||||
(try
|
||||
(u/parse-value :clj-time f d)
|
||||
(catch Exception _
|
||||
nil))))
|
||||
(first))]
|
||||
(u/parse-value :clj-time valid-fmt d)))
|
||||
|
||||
(defmethod parse-csv :sysco-style-1
|
||||
@@ -83,7 +81,7 @@
|
||||
|
||||
(defmethod parse-csv :sysco-style-2
|
||||
[rows]
|
||||
|
||||
|
||||
(let [header (first rows)]
|
||||
(transduce
|
||||
(comp (drop 1)
|
||||
@@ -109,7 +107,7 @@
|
||||
(map (fn [[_ po-number _ invoice-number invoice-date customer value :as row]]
|
||||
{:vendor-code "Mama Lu's Foods"
|
||||
:customer-identifier customer
|
||||
:invoice-number (str po-number "-" invoice-number )
|
||||
:invoice-number (str po-number "-" invoice-number)
|
||||
:date (parse-date-fallover invoice-date ["M/d/yyyy HH:ss" "M/d/yyyy HH:mm:ss aa" "M/d/yyyy"])
|
||||
:total (str/replace value #"," "")
|
||||
:text (str/join " " row)
|
||||
@@ -122,10 +120,10 @@
|
||||
[rows]
|
||||
(transduce
|
||||
(comp (drop 1)
|
||||
(map (fn [[ po-number _ invoice-number invoice-date customer value :as row]]
|
||||
(map (fn [[po-number _ invoice-number invoice-date customer value :as row]]
|
||||
{:vendor-code "Mama Lu's Foods"
|
||||
:customer-identifier customer
|
||||
:invoice-number (str po-number "-" invoice-number )
|
||||
:invoice-number (str po-number "-" invoice-number)
|
||||
:date (parse-date-fallover invoice-date ["M/d/yyyy HH:ss" "M/d/yyyy HH:mm:ss aa" "M/d/yyyy"])
|
||||
:total (str/replace value #"," "")
|
||||
:text (str/join " " row)
|
||||
@@ -137,8 +135,8 @@
|
||||
(defmethod parse-csv :philz
|
||||
[rows]
|
||||
(transduce
|
||||
(comp
|
||||
(filter (fn [[_ _ _ _ _ status _ _ _ ]]
|
||||
(comp
|
||||
(filter (fn [[_ _ _ _ _ status _ _ _]]
|
||||
(= status "Billed")))
|
||||
(map (fn [[dt _ doc-number name _ _ _ _ amount :as row]]
|
||||
{:vendor-code "PHILZ COFFEE, INC"
|
||||
@@ -147,10 +145,8 @@
|
||||
:date (some-> dt not-empty (parse-date-fallover ["MM/dd/yyyy"]))
|
||||
:total (str/replace amount #"," "")
|
||||
:text (str/join " " row)
|
||||
:full-text (str/join " " row)}))
|
||||
:full-text (str/join " " row)})))
|
||||
|
||||
|
||||
)
|
||||
conj
|
||||
[]
|
||||
(drop 1 rows)))
|
||||
@@ -158,15 +154,14 @@
|
||||
(defmethod parse-csv :wismettac
|
||||
[rows]
|
||||
(transduce
|
||||
(comp
|
||||
(comp
|
||||
(map (fn [[inv_number inv_dt total :as row]]
|
||||
{:vendor-code "Wismettac"
|
||||
:invoice-number inv_number
|
||||
:date (some-> inv_dt not-empty (parse-date-fallover ["MM/dd/yyyy"]))
|
||||
:total (str/replace total #"," "")
|
||||
:text (str/join " " row)
|
||||
:full-text (str/join " " row)}))
|
||||
)
|
||||
:full-text (str/join " " row)})))
|
||||
conj
|
||||
[]
|
||||
(drop 1 rows)))
|
||||
@@ -174,36 +169,34 @@
|
||||
(defmethod parse-csv :ledyard
|
||||
[rows]
|
||||
(transduce
|
||||
(comp
|
||||
(map (fn [[invoice-number date due amount standard :as row]]
|
||||
{:vendor-code "Performance Food Group - LEDYARD"
|
||||
:invoice-number invoice-number
|
||||
:date (some-> date not-empty (parse-date-fallover ["MM/dd/yy"]))
|
||||
:due (some-> due not-empty (parse-date-fallover ["MM/dd/yy"]))
|
||||
:total (str/replace amount #"[\$,]" "")
|
||||
:text (str/join " " row)
|
||||
:full-text (str/join " " row)}))
|
||||
)
|
||||
conj
|
||||
[]
|
||||
(drop 1 rows)))
|
||||
(comp
|
||||
(map (fn [[invoice-number date due amount standard :as row]]
|
||||
{:vendor-code "Performance Food Group - LEDYARD"
|
||||
:invoice-number invoice-number
|
||||
:date (some-> date not-empty (parse-date-fallover ["MM/dd/yy"]))
|
||||
:due (some-> due not-empty (parse-date-fallover ["MM/dd/yy"]))
|
||||
:total (str/replace amount #"[\$,]" "")
|
||||
:text (str/join " " row)
|
||||
:full-text (str/join " " row)})))
|
||||
conj
|
||||
[]
|
||||
(drop 1 rows)))
|
||||
|
||||
(defmethod parse-csv :worldwide
|
||||
[rows]
|
||||
(transduce
|
||||
(comp
|
||||
(map (fn [[_ customer-name _ inv date amount :as row]]
|
||||
{:vendor-code "Worldwide Produce"
|
||||
:customer-identifier customer-name
|
||||
:invoice-number (str/replace inv #"[=\"]" "")
|
||||
:date (some-> date not-empty (parse-date-fallover ["MM/dd/yy"]))
|
||||
:total (str/replace amount #"[\$,]" "")
|
||||
:text (str/join " " row)
|
||||
:full-text (str/join " " row)}))
|
||||
)
|
||||
conj
|
||||
[]
|
||||
(drop 1 rows)))
|
||||
(comp
|
||||
(map (fn [[_ customer-name _ inv date amount :as row]]
|
||||
{:vendor-code "Worldwide Produce"
|
||||
:customer-identifier customer-name
|
||||
:invoice-number (str/replace inv #"[=\"]" "")
|
||||
:date (some-> date not-empty (parse-date-fallover ["MM/dd/yy"]))
|
||||
:total (str/replace amount #"[\$,]" "")
|
||||
:text (str/join " " row)
|
||||
:full-text (str/join " " row)})))
|
||||
conj
|
||||
[]
|
||||
(drop 1 rows)))
|
||||
|
||||
#_{:clj-kondo/ignore [:unused-binding]}
|
||||
(defmethod parse-csv nil
|
||||
|
||||
Reference in New Issue
Block a user