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:
@@ -53,54 +53,54 @@
|
||||
event-date (some-> (excel/xls-date->date event-date)
|
||||
coerce/to-date-time
|
||||
atime/as-local-time
|
||||
coerce/to-date )]
|
||||
(cond (and event-date client-id location )
|
||||
coerce/to-date)]
|
||||
(cond (and event-date client-id location)
|
||||
[:order #:sales-order
|
||||
{:date event-date
|
||||
:external-id (str "ezcater/order/" client-id "-" location "-" order-number)
|
||||
:client client-id
|
||||
:location location
|
||||
:reference-link (str order-number)
|
||||
:line-items [#:order-line-item
|
||||
{:external-id (str "ezcater/order/" client-id "-" location "-" order-number "-" 0)
|
||||
:item-name "EZCater Catering"
|
||||
:category "EZCater Catering"
|
||||
:discount (fmt-amount (or adjustments 0.0))
|
||||
:tax (fmt-amount tax)
|
||||
:total (fmt-amount (+ food-total
|
||||
tax))}]
|
||||
{:date event-date
|
||||
:external-id (str "ezcater/order/" client-id "-" location "-" order-number)
|
||||
:client client-id
|
||||
:location location
|
||||
:reference-link (str order-number)
|
||||
:line-items [#:order-line-item
|
||||
{:external-id (str "ezcater/order/" client-id "-" location "-" order-number "-" 0)
|
||||
:item-name "EZCater Catering"
|
||||
:category "EZCater Catering"
|
||||
:discount (fmt-amount (or adjustments 0.0))
|
||||
:tax (fmt-amount tax)
|
||||
:total (fmt-amount (+ food-total
|
||||
tax))}]
|
||||
|
||||
:charges [#:charge
|
||||
{:type-name "CARD"
|
||||
:date event-date
|
||||
:client client-id
|
||||
:location location
|
||||
:external-id (str "ezcater/charge/" client-id "-" location "-" order-number "-" 0)
|
||||
:processor :ccp-processor/ezcater
|
||||
:total (fmt-amount (+ food-total
|
||||
tax
|
||||
tip))
|
||||
:tip (fmt-amount tip)}]
|
||||
:total (fmt-amount (+ food-total
|
||||
tax
|
||||
(or adjustments 0.0)))
|
||||
:discount (fmt-amount (or adjustments 0.0))
|
||||
:service-charge (fmt-amount (+ fee commission))
|
||||
:tax (fmt-amount tax)
|
||||
:tip (fmt-amount tip)
|
||||
:returns 0.0
|
||||
:vendor :vendor/ccp-ezcater}]
|
||||
:charges [#:charge
|
||||
{:type-name "CARD"
|
||||
:date event-date
|
||||
:client client-id
|
||||
:location location
|
||||
:external-id (str "ezcater/charge/" client-id "-" location "-" order-number "-" 0)
|
||||
:processor :ccp-processor/ezcater
|
||||
:total (fmt-amount (+ food-total
|
||||
tax
|
||||
tip))
|
||||
:tip (fmt-amount tip)}]
|
||||
:total (fmt-amount (+ food-total
|
||||
tax
|
||||
(or adjustments 0.0)))
|
||||
:discount (fmt-amount (or adjustments 0.0))
|
||||
:service-charge (fmt-amount (+ fee commission))
|
||||
:tax (fmt-amount tax)
|
||||
:tip (fmt-amount tip)
|
||||
:returns 0.0
|
||||
:vendor :vendor/ccp-ezcater}]
|
||||
|
||||
caterer-name
|
||||
(do
|
||||
(alog/warn ::missing-client
|
||||
:order order-number
|
||||
:store-name store-name
|
||||
:caterer-name caterer-name)
|
||||
[:missing caterer-name])
|
||||
caterer-name
|
||||
(do
|
||||
(alog/warn ::missing-client
|
||||
:order order-number
|
||||
:store-name store-name
|
||||
:caterer-name caterer-name)
|
||||
[:missing caterer-name])
|
||||
|
||||
:else
|
||||
nil)))
|
||||
:else
|
||||
nil)))
|
||||
|
||||
(defn stream->sales-orders [s]
|
||||
(let [clients (map first (dc/q '[:find (pull ?c [:client/code
|
||||
@@ -115,7 +115,7 @@
|
||||
object (str "/ezcater-xls/" (str (java.util.UUID/randomUUID)))]
|
||||
(mu/log ::writing-temp-xls
|
||||
:location object)
|
||||
(s3/put-object {:bucket-name (:data-bucket env)
|
||||
(s3/put-object {:bucket-name (:data-bucket env)
|
||||
:key object
|
||||
:input-stream s})
|
||||
(into []
|
||||
@@ -157,13 +157,13 @@
|
||||
});")]])])
|
||||
|
||||
(defn upload-xls [{:keys [identity] :as request}]
|
||||
|
||||
|
||||
(let [file (or (get (:params request) :file)
|
||||
(get (:params request) "file"))]
|
||||
(mu/log ::uploading-file
|
||||
:file file)
|
||||
(with-open [s (io/input-stream (:tempfile file))]
|
||||
(try
|
||||
(try
|
||||
(let [parse-results (stream->sales-orders s)
|
||||
new-orders (->> parse-results
|
||||
(filter (comp #{:order} first))
|
||||
@@ -181,7 +181,7 @@
|
||||
[:li ml])]])]))
|
||||
(catch Exception e
|
||||
(alog/error ::import-error
|
||||
:error e)
|
||||
:error e)
|
||||
(html-response [:div (.getMessage e)]))))))
|
||||
|
||||
(defn page [{:keys [matched-route request-method] :as request}]
|
||||
|
||||
Reference in New Issue
Block a user