trimming more vendor usage.
This commit is contained in:
@@ -1,8 +1,6 @@
|
|||||||
(ns auto-ap.views.components.expense-accounts-field
|
(ns auto-ap.views.components.expense-accounts-field
|
||||||
(:require [auto-ap.forms :as forms]
|
(:require [auto-ap.subs :as subs]
|
||||||
[auto-ap.subs :as subs]
|
|
||||||
[auto-ap.views.components.typeahead :refer [typeahead-v3]]
|
[auto-ap.views.components.typeahead :refer [typeahead-v3]]
|
||||||
[auto-ap.views.components.money-field :refer [money-field]]
|
|
||||||
[auto-ap.views.utils :refer [bind-field dispatch-event ->$]]
|
[auto-ap.views.utils :refer [bind-field dispatch-event ->$]]
|
||||||
[goog.string :as gstring]
|
[goog.string :as gstring]
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
|
|||||||
@@ -1,19 +1,27 @@
|
|||||||
(ns auto-ap.views.pages.admin.rules.form
|
(ns auto-ap.views.pages.admin.rules.form
|
||||||
(:require [auto-ap.entities.transaction-rule :as entity]
|
(:require
|
||||||
[auto-ap.forms :as forms]
|
[auto-ap.entities.transaction-rule :as entity]
|
||||||
[auto-ap.subs :as subs]
|
[auto-ap.events :as events]
|
||||||
[auto-ap.views.components.button-radio :refer [button-radio]]
|
[auto-ap.forms :as forms]
|
||||||
[auto-ap.views.components.expense-accounts-field :as expense-accounts-field :refer [expense-accounts-field]]
|
[auto-ap.status :as status]
|
||||||
[auto-ap.views.components.layouts :as layouts]
|
[auto-ap.subs :as subs]
|
||||||
[auto-ap.views.components.typeahead :refer [typeahead-v3]]
|
[auto-ap.views.components.button-radio :refer [button-radio]]
|
||||||
[auto-ap.views.pages.admin.rules.common :refer [default-read]]
|
[auto-ap.views.components.expense-accounts-field
|
||||||
[auto-ap.views.pages.admin.rules.results-modal :as results-modal]
|
:as expense-accounts-field
|
||||||
[auto-ap.views.utils :refer [dispatch-event with-user]]
|
:refer [expense-accounts-field]]
|
||||||
[clojure.spec.alpha :as s]
|
[auto-ap.views.components.layouts :as layouts]
|
||||||
[clojure.string :as str]
|
[auto-ap.views.components.typeahead :refer [typeahead-v3]]
|
||||||
[re-frame.core :as re-frame]
|
[auto-ap.views.components.typeahead.vendor
|
||||||
[auto-ap.status :as status]
|
:refer [search-backed-typeahead]]
|
||||||
[vimsical.re-frame.cofx.inject :as inject]))
|
[auto-ap.views.pages.admin.rules.common :refer [default-read]]
|
||||||
|
[auto-ap.views.pages.admin.rules.results-modal :as results-modal]
|
||||||
|
[auto-ap.views.utils :refer [dispatch-event with-user]]
|
||||||
|
[clojure.spec.alpha :as s]
|
||||||
|
[clojure.string :as str]
|
||||||
|
[re-frame.core :as re-frame]
|
||||||
|
[reagent.core :as r]
|
||||||
|
[vimsical.re-frame.cofx.inject :as inject]
|
||||||
|
[vimsical.re-frame.fx.track :as track]))
|
||||||
|
|
||||||
;; SUBS
|
;; SUBS
|
||||||
|
|
||||||
@@ -161,25 +169,35 @@
|
|||||||
xs)))))))))
|
xs)))))))))
|
||||||
|
|
||||||
|
|
||||||
|
(re-frame/reg-event-fx
|
||||||
|
::changed-vendor
|
||||||
|
[(forms/in-form ::form)]
|
||||||
|
(fn [{{{:keys [client]} :data} :db} [_ vendor]]
|
||||||
|
(when (and (:id client) (:id vendor))
|
||||||
|
{:dispatch [::events/vendor-preferences-requested {:client-id (:id client)
|
||||||
|
:vendor-id (:id vendor)
|
||||||
|
:on-success [::changed [:vendor-preferences]]}]})))
|
||||||
|
|
||||||
|
(re-frame/reg-event-fx
|
||||||
|
::changed-client
|
||||||
|
[(forms/in-form ::form)]
|
||||||
|
(fn [{{{:keys [vendor]} :data} :db} [_ client]]
|
||||||
|
(when (and (:id client) (:id vendor))
|
||||||
|
{:dispatch [::events/vendor-preferences-requested {:client-id (:id client)
|
||||||
|
:vendor-id (:id vendor)
|
||||||
|
:on-success [::changed [:vendor-preferences]]}]})))
|
||||||
|
|
||||||
(re-frame/reg-event-db
|
(re-frame/reg-event-db
|
||||||
::changed
|
::changed
|
||||||
(forms/change-handler ::form
|
(forms/change-handler ::form
|
||||||
(fn [data field value]
|
(fn [data field value]
|
||||||
(cond (and (= [:vendor] field)
|
(cond (and (= [:vendor-preferences] field)
|
||||||
value
|
value
|
||||||
(expense-accounts-field/can-replace-with-default? (:accounts data)))
|
(expense-accounts-field/can-replace-with-default? (:accounts data)))
|
||||||
[[:accounts] (expense-accounts-field/default-account (:accounts data)
|
[[:accounts] (expense-accounts-field/default-account (:accounts data)
|
||||||
@(re-frame/subscribe [::subs/vendor-default-account (:id value) (:client data)])
|
(:default-account value)
|
||||||
(:total data)
|
(:total data)
|
||||||
[])]
|
[])]
|
||||||
|
|
||||||
(= [:client] field)
|
|
||||||
[[:accounts] (expense-accounts-field/default-account (:accounts data)
|
|
||||||
@(re-frame/subscribe [::subs/vendor-default-account (:id (:vendor data)) value])
|
|
||||||
(:total data)
|
|
||||||
[])
|
|
||||||
[:bank-account] nil]
|
|
||||||
|
|
||||||
:else
|
:else
|
||||||
[]))))
|
[]))))
|
||||||
|
|
||||||
@@ -228,14 +246,30 @@
|
|||||||
:submit-event [::saving ]
|
:submit-event [::saving ]
|
||||||
:id ::form}))
|
:id ::form}))
|
||||||
|
|
||||||
|
(re-frame/reg-event-fx
|
||||||
|
::mounted
|
||||||
|
(fn [_ _]
|
||||||
|
{::track/register [{:id ::client
|
||||||
|
:subscription [::forms/field ::form [:client]]
|
||||||
|
:event-fn (fn [c]
|
||||||
|
[::changed-client c])}
|
||||||
|
{:id ::vendor-change
|
||||||
|
:subscription [::forms/field ::form [:vendor]]
|
||||||
|
:event-fn (fn [v]
|
||||||
|
[::changed-vendor v])}]}))
|
||||||
|
|
||||||
|
(re-frame/reg-event-fx
|
||||||
|
::unmounted
|
||||||
|
(fn []
|
||||||
|
{::track/dispose [{:id ::client}
|
||||||
|
{:id ::vendor-change}]}))
|
||||||
|
|
||||||
(defn form [params]
|
(defn form-contents [params]
|
||||||
[layouts/side-bar {:on-close (dispatch-event [::forms/form-closing ::form ])}
|
[layouts/side-bar {:on-close (dispatch-event [::forms/form-closing ::form ])}
|
||||||
(let [{:keys [data id]} @(re-frame/subscribe [::forms/form ::form])
|
(let [{:keys [data id]} @(re-frame/subscribe [::forms/form ::form])
|
||||||
{:keys [form-inline field raw-field error-notification submit-button ]} rule-form
|
{:keys [form-inline field raw-field error-notification submit-button ]} rule-form
|
||||||
default-note @(re-frame/subscribe [::default-note])
|
default-note @(re-frame/subscribe [::default-note])
|
||||||
test-state @(re-frame/subscribe [::status/single ::test])]
|
test-state @(re-frame/subscribe [::status/single ::test])]
|
||||||
^{:key id}
|
^{:key id}
|
||||||
(form-inline (assoc params :title "New Transaction Rule")
|
(form-inline (assoc params :title "New Transaction Rule")
|
||||||
[:<>
|
[:<>
|
||||||
@@ -314,12 +348,12 @@
|
|||||||
[:h2.title.is-4 "Outcomes"]
|
[:h2.title.is-4 "Outcomes"]
|
||||||
|
|
||||||
(field "Assign Vendor"
|
(field "Assign Vendor"
|
||||||
[typeahead-v3 {:entities-by-id @(re-frame/subscribe [::subs/vendors-by-id])
|
[search-backed-typeahead {:search-query (fn [i]
|
||||||
:entity-index @(re-frame/subscribe [::subs/all-vendors-index])
|
[:search_vendor
|
||||||
:entity->text :name
|
{:query i}
|
||||||
:type "typeahead-v3"
|
[:name :id]])
|
||||||
:field [:vendor]
|
:type "typeahead-v3"
|
||||||
:spec ::entity/vendor}])
|
:field [:vendor]}])
|
||||||
|
|
||||||
(with-meta
|
(with-meta
|
||||||
(field nil
|
(field nil
|
||||||
@@ -330,7 +364,7 @@
|
|||||||
:locations (into ["Shared"] @(re-frame/subscribe [::subs/locations-for-client-or-bank-account (:id (:client data)) (:id (:bank-account data))]))
|
:locations (into ["Shared"] @(re-frame/subscribe [::subs/locations-for-client-or-bank-account (:id (:client data)) (:id (:bank-account data))]))
|
||||||
:max 100
|
:max 100
|
||||||
:field [:accounts]}])
|
:field [:accounts]}])
|
||||||
{:key (some-> data :vendor :id str)})
|
{:key (str (some-> data :vendor :id str) "-" (some-> data :client :id str))})
|
||||||
|
|
||||||
(field "Approval Status"
|
(field "Approval Status"
|
||||||
[button-radio
|
[button-radio
|
||||||
@@ -357,3 +391,11 @@
|
|||||||
"Test Rule"]]
|
"Test Rule"]]
|
||||||
[:div.column
|
[:div.column
|
||||||
(submit-button "Save")]]]))])
|
(submit-button "Save")]]]))])
|
||||||
|
|
||||||
|
(defn form [_]
|
||||||
|
(r/create-class
|
||||||
|
{:display-name "rule-form"
|
||||||
|
:component-did-mount #(re-frame/dispatch [::mounted])
|
||||||
|
:component-will-unmount #(re-frame/dispatch [::unmounted])
|
||||||
|
:reagent-render (fn [p]
|
||||||
|
[form-contents p])}))
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
(ns auto-ap.views.pages.admin.vendors.merge-dialog
|
(ns auto-ap.views.pages.admin.vendors.merge-dialog
|
||||||
(:require [auto-ap.forms :as forms]
|
(:require
|
||||||
[auto-ap.status :as status]
|
[auto-ap.forms :as forms]
|
||||||
[auto-ap.subs :as subs]
|
[auto-ap.status :as status]
|
||||||
[auto-ap.views.components.modal :as modal]
|
[auto-ap.subs :as subs]
|
||||||
[auto-ap.views.components.typeahead :refer [typeahead-v3]]
|
[auto-ap.views.components.modal :as modal]
|
||||||
[auto-ap.views.utils :refer [dispatch-event]]
|
[auto-ap.views.components.typeahead.vendor
|
||||||
[re-frame.core :as re-frame]))
|
:refer [search-backed-typeahead]]
|
||||||
|
[auto-ap.views.utils :refer [dispatch-event]]
|
||||||
|
[re-frame.core :as re-frame]))
|
||||||
|
|
||||||
(re-frame/reg-sub
|
(re-frame/reg-sub
|
||||||
::can-submit
|
::can-submit
|
||||||
@@ -21,29 +23,29 @@
|
|||||||
:id ::form}))
|
:id ::form}))
|
||||||
|
|
||||||
(defn form []
|
(defn form []
|
||||||
(let [{:keys [data active? error id]} @(re-frame/subscribe [::forms/form ::form])
|
(let [_ @(re-frame/subscribe [::forms/form ::form])
|
||||||
{:keys [form-inline horizontal-field field raw-field error-notification submit-button]} merge-form]
|
{:keys [form-inline field]} merge-form]
|
||||||
|
|
||||||
|
|
||||||
(form-inline {}
|
(form-inline {}
|
||||||
[:<>
|
[:<>
|
||||||
(field "Form Vendor (will be deleted)"
|
(field "Form Vendor (will be deleted)"
|
||||||
[typeahead-v3 {:entities-by-id @(re-frame/subscribe [::subs/vendors-by-id])
|
[search-backed-typeahead {:search-query (fn [i]
|
||||||
:entity-index @(re-frame/subscribe [::subs/all-vendors-index])
|
[:search_vendor
|
||||||
:type "typeahead-v3"
|
{:query i}
|
||||||
:auto-focus true
|
[:name :id]])
|
||||||
:entity->text (fn [x]
|
:type "typeahead-v3"
|
||||||
(str (:name x) " (" (reduce + 0 (map :count (:usage x))) " usages)") )
|
:auto-focus true
|
||||||
:field [:from]}])
|
:field [:from]}])
|
||||||
|
|
||||||
|
|
||||||
(field "To Vendor"
|
(field "To Vendor"
|
||||||
[typeahead-v3 {:entities-by-id @(re-frame/subscribe [::subs/vendors-by-id])
|
[search-backed-typeahead {:search-query (fn [i]
|
||||||
:entity-index @(re-frame/subscribe [::subs/searchable-vendors-index])
|
[:search_vendor
|
||||||
:type "typeahead-v3"
|
{:query i}
|
||||||
:entity->text (fn [x]
|
[:name :id]])
|
||||||
(str (:name x) " (" (reduce + 0 (map :count (:usage x))) " usages)") )
|
:type "typeahead-v3"
|
||||||
:field [:to]}])])))
|
:field [:to]}])])))
|
||||||
|
|
||||||
(re-frame/reg-event-fx
|
(re-frame/reg-event-fx
|
||||||
::show
|
::show
|
||||||
@@ -68,7 +70,7 @@
|
|||||||
(re-frame/reg-event-fx
|
(re-frame/reg-event-fx
|
||||||
::save
|
::save
|
||||||
[(forms/in-form ::form)]
|
[(forms/in-form ::form)]
|
||||||
(fn [{{{:keys [from to]} :data :as merge-vendors-form} :db :as g} _]
|
(fn [{{{:keys [from to]} :data} :db} _]
|
||||||
(let [user @(re-frame/subscribe [::subs/token])]
|
(let [user @(re-frame/subscribe [::subs/token])]
|
||||||
{:graphql
|
{:graphql
|
||||||
{:token user
|
{:token user
|
||||||
|
|||||||
@@ -302,7 +302,6 @@
|
|||||||
{::track/register [{:id ::client
|
{::track/register [{:id ::client
|
||||||
:subscription [::subs/client]
|
:subscription [::subs/client]
|
||||||
:event-fn (fn [c]
|
:event-fn (fn [c]
|
||||||
(println "changing client?")
|
|
||||||
[::maybe-change-client c])}
|
[::maybe-change-client c])}
|
||||||
{:id ::vendor-change
|
{:id ::vendor-change
|
||||||
:subscription [::forms/field ::form [:vendor]]
|
:subscription [::forms/field ::form [:vendor]]
|
||||||
|
|||||||
Reference in New Issue
Block a user