very easy to lookup customized accounts.
This commit is contained in:
@@ -1,22 +1,19 @@
|
||||
(ns auto-ap.views.pages.admin.rules.form
|
||||
(:require [auto-ap.entities.transaction-rule :as entity]
|
||||
[auto-ap.events :as events]
|
||||
[auto-ap.forms :as forms]
|
||||
[auto-ap.subs :as subs]
|
||||
[auto-ap.views.components.button-radio :refer [button-radio]]
|
||||
[auto-ap.utils :refer [dollars=]]
|
||||
[auto-ap.views.components.dropdown :refer [drop-down]]
|
||||
[auto-ap.views.components.expense-accounts-field :as expense-accounts-field :refer [expense-accounts-field recalculate-amounts]]
|
||||
[auto-ap.views.components.expense-accounts-field :as expense-accounts-field :refer [expense-accounts-field]]
|
||||
[auto-ap.views.components.layouts :as layouts]
|
||||
[auto-ap.views.components.typeahead :refer [typeahead-v3]]
|
||||
[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 [date->str date-picker dispatch-event standard with-user]]
|
||||
[cljs-time.core :as c]
|
||||
[auto-ap.views.utils :refer [dispatch-event with-user]]
|
||||
[clojure.spec.alpha :as s]
|
||||
[clojure.string :as str]
|
||||
[re-frame.core :as re-frame]
|
||||
[auto-ap.status :as status]))
|
||||
[auto-ap.status :as status]
|
||||
[vimsical.re-frame.cofx.inject :as inject]))
|
||||
|
||||
;; SUBS
|
||||
|
||||
@@ -45,7 +42,7 @@
|
||||
(re-frame/reg-sub
|
||||
::can-submit
|
||||
:<- [::forms/form ::form]
|
||||
(fn [{:keys [data status]} _]
|
||||
(fn [{:keys [data]} _]
|
||||
(s/valid? ::entity/transaction-rule data)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
@@ -188,23 +185,23 @@
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::saving
|
||||
[with-user (forms/triggers-loading ::form) (forms/in-form ::form)]
|
||||
(fn [{:keys [user] {:keys [data]} :db} [_ params]]
|
||||
[with-user (forms/triggers-loading ::form) (forms/in-form ::form) (re-frame/inject-cofx ::inject/sub [::query])]
|
||||
(fn [{:keys [user] ::keys [query]} _]
|
||||
{:graphql
|
||||
{:token user
|
||||
:query-obj @(re-frame/subscribe [::query])
|
||||
:query-obj query
|
||||
:on-success (fn [result]
|
||||
[::updated (:upsert-transaction-rule result)])
|
||||
:on-error [::forms/save-error ::form]}}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::test-clicked
|
||||
[with-user (forms/triggers-loading ::form) (forms/in-form ::form)]
|
||||
(fn [{:keys [user] {:keys [data]} :db} [_ params]]
|
||||
[with-user (forms/triggers-loading ::form) (forms/in-form ::form) (re-frame/inject-cofx ::inject/sub [::test-query])]
|
||||
(fn [{:keys [user] ::keys [test-query]} _]
|
||||
{:graphql
|
||||
{:token user
|
||||
:owns-state {:single ::test}
|
||||
:query-obj @(re-frame/subscribe [::test-query])
|
||||
:query-obj test-query
|
||||
:on-success [::succeeded-test]
|
||||
:on-error [::forms/save-error ::form]}}))
|
||||
|
||||
@@ -218,7 +215,7 @@
|
||||
(re-frame/reg-event-fx
|
||||
::succeeded-test
|
||||
[(forms/triggers-stop-loading ::form)]
|
||||
(fn [{:keys [db]} [_ result]]
|
||||
(fn [_ [_ result]]
|
||||
|
||||
{:dispatch [::results-modal/opening (:test-transaction-rule result) nil false]}))
|
||||
|
||||
@@ -233,13 +230,12 @@
|
||||
|
||||
|
||||
|
||||
(defn form [{:keys [can-change-amount?] :as params}]
|
||||
(defn form [params]
|
||||
[layouts/side-bar {:on-close (dispatch-event [::forms/form-closing ::form ])}
|
||||
(let [{:keys [data active? error 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
|
||||
default-note @(re-frame/subscribe [::default-note])
|
||||
test-state @(re-frame/subscribe [::status/single ::test])
|
||||
exists? (:id data)]
|
||||
test-state @(re-frame/subscribe [::status/single ::test])]
|
||||
^{:key id}
|
||||
(form-inline (assoc params :title "New Transaction Rule")
|
||||
[:<>
|
||||
@@ -315,8 +311,6 @@
|
||||
:precision 0
|
||||
:step "1"}])]]]]
|
||||
|
||||
|
||||
|
||||
[:h2.title.is-4 "Outcomes"]
|
||||
|
||||
(field "Assign Vendor"
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
(fn [db _]
|
||||
db))
|
||||
|
||||
(re-frame/reg-sub
|
||||
#_(re-frame/reg-sub
|
||||
::client-accounts
|
||||
:<- [::forms/field ::form [:client]]
|
||||
:<- [::subs/all-accounts]
|
||||
@@ -275,15 +275,19 @@
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::changed-vendor
|
||||
[with-user (forms/in-form ::form) (re-frame/inject-cofx ::inject/sub [::client-accounts])]
|
||||
(fn [{::keys [client-accounts] :keys [user] {{:keys [client date due expense-accounts total]} :data} :db} [_ vendor]]
|
||||
[with-user (forms/in-form ::form)]
|
||||
(fn [{:keys [user] {{:keys [client date due expense-accounts total]} :data} :db} [_ vendor]]
|
||||
(when (:id vendor)
|
||||
{:graphql {:token user
|
||||
:query-obj {:venia/queries [[:vendor-by-id
|
||||
{:id (:id vendor)}
|
||||
[[:automatically-paid-when-due [:id]]
|
||||
[:schedule-payment-dom [[:client [:id]] :dom]]
|
||||
[:default-account [:id]]]]]}
|
||||
[:default-account [:id]]]]
|
||||
[:account-for-vendor
|
||||
{:vendor-id (:id vendor)
|
||||
:client-id (:id client)}
|
||||
[:name :id :numeric-code :location]]]}
|
||||
:on-success (fn [r]
|
||||
(let [schedule-payment-dom (->> r
|
||||
:vendor-by-id
|
||||
@@ -294,23 +298,12 @@
|
||||
first
|
||||
:dom)
|
||||
|
||||
default-account (let [client-override (->> r
|
||||
:vendor-by-id
|
||||
:account-overrides
|
||||
(filter #(= (:id (:client %)) (:id client)))
|
||||
first
|
||||
:account
|
||||
:id)
|
||||
default-id (->> r :vendor-by-id :default-account :id)
|
||||
i (or client-override default-id)]
|
||||
(client-accounts i))
|
||||
changes (cond-> []
|
||||
(expense-accounts-field/can-replace-with-default? expense-accounts)
|
||||
(into [[:expense-accounts] (expense-accounts-field/default-account expense-accounts
|
||||
default-account
|
||||
(:account-for-vendor r)
|
||||
total
|
||||
(:locations client)
|
||||
)])
|
||||
(:locations client))])
|
||||
|
||||
(boolean ((->> r :vendor-by-id :automatically-paid-when-due (map :id) set) (:id client)))
|
||||
(into [[:scheduled-payment] due
|
||||
|
||||
Reference in New Issue
Block a user