import batch next

This commit is contained in:
Bryce Covert
2021-12-22 21:47:37 -08:00
parent 7489426ccb
commit 58fd014082
6 changed files with 75 additions and 55 deletions

View File

@@ -46,6 +46,8 @@
:serialize #(or (:ident %) (:db/ident %) %)}
:iso_date {:parse #(time/parse % time/iso-date)
:serialize #(time/unparse % time/iso-date)}
:iso_date_time {:parse #(clj-time.coerce/to-date-time %)
:serialize #(str (clj-time.coerce/to-date-time %))}
:money {:parse #(cond (and (string? %)
(not (str/blank? %)))
(Double/parseDouble %)
@@ -459,22 +461,7 @@
:start {:type 'Int}
:end {:type 'Int}}}
:import_batch {:fields {:user_name {:type 'String}
:id {:type :id}
:date {:type :iso_date}
:imported {:type 'Int}
:extant {:type 'Int}
:suppressed {:type 'Int}
:status {:type :import_batch_status}
:source {:type :import_batch_source}}}
:import_batch_page {:fields {:data {:type '(list :import_batch)}
:count {:type 'Int}
:total {:type 'Int}
:start {:type 'Int}
:end {:type 'Int}}}
:transaction_rule_page {:fields {:transaction_rules {:type '(list :transaction_rule)}
:transaction_rule_page {:fields {:transaction_rules {:type '(list :transaction_rule)}
:count {:type 'Int}
:total {:type 'Int}
:start {:type 'Int}
@@ -655,10 +642,7 @@
:resolve :get-transaction-page}
:import_batch_page {:type :import_batch_page
:args {:filters {:type :import_batch_filters}}
:resolve :get-import-batch-page}
:transaction_rule_page {:type :transaction_rule_page
:args {:client_id {:type :id}
@@ -748,9 +732,7 @@
:sort {:type '(list :sort_item)}
:approval_status {:type :transaction_approval_status}
:unresolved {:type 'Boolean}}}
:import_batch_filters {:fields {:start {:type 'Int}
:per_page {:type 'Int}
:sort {:type '(list :sort_item)}}}
:ledger_filters {:fields {:client_id {:type :id}
:vendor_id {:type :id}
@@ -967,13 +949,8 @@
{:enum-value :cash}
{:enum-value :debit}]}
:import_batch_source {:values [{:enum-value :intuit}
{:enum-value :yodlee}
{:enum-value :yodlee2}
{:enum-value :plaid}
{:enum-value :manual}]}
:import_batch_status {:values [{:enum-value :started}
{:enum-value :completed}]}
:processor {:values [{:enum-value :na}
{:enum-value :doordash}
@@ -1373,7 +1350,6 @@
:get-potential-unpaid-invoices-matches gq-transactions/get-potential-unpaid-invoices-matches
:get-accounts gq-accounts/get-accounts
:get-transaction-page gq-transactions/get-transaction-page
:get-import-batch-page gq-import-batches/get-import-batch-page
:get-ledger-page gq-ledger/get-ledger-page
:get-sales-order-page gq-sales-orders/get-sales-orders-page
:get-balance-sheet gq-ledger/get-balance-sheet
@@ -1421,6 +1397,7 @@
:mutation/request-import gq-requests/request-import
:get-vendor gq-vendors/get-graphql})
gq-plaid/attach
gq-import-batches/attach
schema/compile))

View File

@@ -1,11 +1,12 @@
(ns auto-ap.graphql.import-batch
(:require
[clojure.tools.logging :as log]
[datomic.api :as d]
[auto-ap.datomic
:refer [add-sorter-fields apply-pagination apply-sort-3 merge-query conn]]
[auto-ap.graphql.utils :refer [<-graphql assert-admin ident->enum-f result->page]]))
(:require [auto-ap.datomic
:refer
[add-sorter-fields apply-pagination apply-sort-3 conn merge-query]]
[auto-ap.graphql.utils
:refer
[<-graphql assert-admin ident->enum-f result->page]]
[com.walmartlabs.lacinia.util :refer [attach-resolvers]]
[datomic.api :as d]))
(def default-read '[:db/id
:import-batch/external-id
@@ -60,4 +61,38 @@
matching-count :data args)))
(defn attach [schema]
(->
(merge-with merge schema
{:objects {:import_batch {:fields {:user_name {:type 'String}
:id {:type :id}
:date {:type :iso_date_time}
:imported {:type 'Int}
:extant {:type 'Int}
:suppressed {:type 'Int}
:status {:type :import_batch_status}
:source {:type :import_batch_source}}}
:import_batch_page {:fields {:data {:type '(list :import_batch)}
:count {:type 'Int}
:total {:type 'Int}
:start {:type 'Int}
:end {:type 'Int}}}
}
:queries {:import_batch_page {:type :import_batch_page
:args {:filters {:type :import_batch_filters}}
:resolve :get-import-batch-page}}
:mutations {}
:input-objects {:import_batch_filters {:fields {:start {:type 'Int}
:per_page {:type 'Int}
:sort {:type '(list :sort_item)}}}}
:enums {:import_batch_status {:values [{:enum-value :started}
{:enum-value :completed}]}
:import_batch_source {:values [{:enum-value :intuit}
{:enum-value :yodlee}
{:enum-value :yodlee2}
{:enum-value :plaid}
{:enum-value :manual}]}}})
(attach-resolvers {:get-import-batch-page get-import-batch-page})))

View File

@@ -1,6 +1,7 @@
(ns auto-ap.time
(:require [clj-time.core :as time]
[clj-time.format :as f]))
[clj-time.format :as f]
[clojure.tools.logging :as log]))
(defn localize [d]
(time/to-time-zone d (time/time-zone-for-id "America/Los_Angeles")))
@@ -10,6 +11,7 @@
(def normal-date "MM/dd/yyyy")
(def iso-date "yyyy-MM-dd")
(def iso-date-time (:date-hour-minute-second-ms f/formatters))
(defn parse [v format]
(try
@@ -22,6 +24,7 @@
(try
(f/unparse (f/formatter format) v)
(catch Exception e
(log/warn e)
nil)))
(defn unparse-local [v format]

View File

@@ -57,7 +57,6 @@
(def is-year-month-day #"^\d{4}-\d{2}-\d{2}$")
(defn dates->date-times [x]
(walk/postwalk
(fn [node]
@@ -65,7 +64,7 @@
(and (string? node)
(re-matches is-8601 node))
(format/parse (format/formatters :date-time) node)
(time/to-default-time-zone (format/parse (format/formatters :date-time) node))
(and (string? node)
(re-matches is-year-month-day node))

View File

@@ -60,7 +60,12 @@
[:a {:href (bidi/path-for routes/routes :admin-yodlee2), :class (str "item" (active-when ap = :admin-yodlee2))}
[:span {:class "icon icon-saving-bank-1" :style {:font-size "25px"}}]
[:span {:class "name"} "Yodlee 2 Link"]]]
[:li.menu-item
[:a {:href (bidi/path-for routes/routes :admin-plaid), :class (str "item" (active-when ap = :admin-plaid))}
[:span {:class "icon icon-saving-bank-1" :style {:font-size "25px"}}]
[:span {:class "name"} "Plaid Link"]]]
[:ul ]]
[:p.menu-label "History"]
[:ul.menu-list

View File

@@ -1,16 +1,17 @@
(ns auto-ap.views.pages.admin.import-batches.table
(:require
[auto-ap.status :as status]
[auto-ap.subs :as subs]
[auto-ap.views.components.buttons :as buttons]
[auto-ap.views.components.grid :as grid]
[auto-ap.views.pages.data-page :as data-page]
[auto-ap.views.utils :refer [date->str dispatch-event action-cell-width]]
[re-frame.core :as re-frame]
[reagent.core :as r]
[bidi.bidi :as bidi]
[auto-ap.routes :as routes]
[cemerick.url :as url]))
(:require [auto-ap.routes :as routes]
[auto-ap.status :as status]
[auto-ap.subs :as subs]
[auto-ap.views.components.buttons :as buttons]
[auto-ap.views.components.grid :as grid]
[auto-ap.views.pages.data-page :as data-page]
[auto-ap.views.utils
:refer
[action-cell-width date->str dispatch-event pretty-long]]
[bidi.bidi :as bidi]
[cemerick.url :as url]
[re-frame.core :as re-frame]
[reagent.core :as r]))
(re-frame/reg-sub
::specific-table-params
@@ -67,7 +68,7 @@
(for [{:keys [date source status user-name id imported extant suppressed] :as r} (:data data)]
^{:key id}
[grid/row {:class (:class r) :id id}
[grid/cell {} (date->str date)]
[grid/cell {} (date->str date pretty-long)]
[grid/cell {} source]
[grid/cell {} status]
[grid/cell {} user-name]