huge number of changes to start making all usages of expense accounts dynamic.
This commit is contained in:
@@ -10,18 +10,14 @@
|
||||
|
||||
[bidi.bidi :as bidi]))
|
||||
|
||||
(def vendor-query
|
||||
[:id :name :default-expense-account
|
||||
[:primary-contact [:name :phone :email :id]]
|
||||
[:secondary-contact [:id :name :phone :email]]
|
||||
:print-as :invoice-reminder-schedule :code
|
||||
[:address [:street1 :street2 :city :state :zip]]])
|
||||
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::edit
|
||||
(fn [{:keys [db]} [_ vendor-id]]
|
||||
{:db (assoc-in db [:admin :vendor]
|
||||
(get (:vendors db) vendor-id))
|
||||
(-> (get (:vendors db) vendor-id)
|
||||
(assoc :default-account-id (:id (:default-account (get (:vendors db) vendor-id))))))
|
||||
:dispatch [::events/modal-status :auto-ap.views.pages.admin.vendors/admin-vendor {:visible? true}]}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
@@ -35,7 +31,8 @@
|
||||
::save
|
||||
(fn [{:keys [db]} _]
|
||||
(let [edited-vendor (get-in db [:admin :vendor])
|
||||
fx {:db (assoc-in db [:admin :vendor :saving?] true)}]
|
||||
fx {:db (assoc-in db [:admin :vendor :saving?] true)}
|
||||
_ (println "EDITED" edited-vendor)]
|
||||
(when (s/valid? ::entity/vendor edited-vendor)
|
||||
(assoc fx :graphql
|
||||
{:token (-> db :user)
|
||||
@@ -43,8 +40,9 @@
|
||||
:operation/name "UpsertVendor"}
|
||||
|
||||
:venia/queries [{:query/data [:upsert-vendor
|
||||
{:vendor edited-vendor}
|
||||
vendor-query]}]}
|
||||
{:vendor (-> edited-vendor
|
||||
(dissoc :default-account))}
|
||||
events/vendor-query]}]}
|
||||
:on-success [::save-complete]
|
||||
:on-error [::save-error]})))))
|
||||
|
||||
@@ -90,6 +88,7 @@
|
||||
(re-frame/reg-event-db
|
||||
::change
|
||||
(fn [db [_ path value]]
|
||||
(println path value)
|
||||
(assoc-in db (concat [:admin :vendor] path)
|
||||
value)))
|
||||
|
||||
@@ -112,7 +111,7 @@
|
||||
::mounted
|
||||
(fn [{:keys [db]} _]
|
||||
{:graphql {:token (:user db)
|
||||
:query-obj {:venia/queries [[:vendor vendor-query]]}
|
||||
:query-obj {:venia/queries [[:vendor events/vendor-query]]}
|
||||
:on-success [::received-vendors]}}))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
(ns auto-ap.events.expense-accounts
|
||||
(:require [re-frame.core :as re-frame]
|
||||
[reagent.core :as r]
|
||||
[clojure.string :as str]
|
||||
[clojure.spec.alpha :as s]
|
||||
[cljs-time.core :as c]
|
||||
[goog.string :as gstring]
|
||||
[auto-ap.entities.clients :as clients]
|
||||
[auto-ap.entities.invoice :as invoice]
|
||||
[auto-ap.entities.vendors :as vendor]
|
||||
[auto-ap.expense-accounts :as expense-accounts]
|
||||
[auto-ap.entities.invoices-expense-accounts :as invoices-expense-accounts]
|
||||
[auto-ap.views.utils :refer [dispatch-event bind-field horizontal-field date->str str->date pretty standard]]
|
||||
[auto-ap.utils :refer [by replace-if]]
|
||||
[auto-ap.events :as events]))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::change-expense-accounts
|
||||
(fn [{:keys [db]} [_ id]]
|
||||
{:dispatch [::events/modal-status ::change-expense-accounts {:visible? true}]
|
||||
:db (assoc-in db [::change-expense-accounts :invoice] (get (by :id (get-in db [::invoice-page :invoices])) id))}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::change-expense-accounts-saving
|
||||
(fn [{:keys [db]} [_ id]]
|
||||
(let [{:keys [id expense-accounts]} (get-in db [::change-expense-accounts :invoice])]
|
||||
{:graphql
|
||||
{:token (-> db :user)
|
||||
:query-obj {:venia/operation {:operation/type :mutation
|
||||
:operation/name "EditExpenseAccounts"}
|
||||
|
||||
:venia/queries [{:query/data [:edit-expense-accounts
|
||||
{:invoice-id id
|
||||
:expense-accounts (map (fn [ea] {:id (:id ea)
|
||||
:amount (:amount ea)
|
||||
:location (:location ea)
|
||||
:expense-account-id (:expense-account-id ea)})
|
||||
expense-accounts)}
|
||||
[:id :total :outstanding-balance :invoice-number :date
|
||||
[:vendor [:name :id]]
|
||||
[:expense_accounts [:amount :id :location :expense_account_id
|
||||
[:expense_account [:id :name [:parent [:id :name]]]]]]
|
||||
[:client [:name :id :locations]]
|
||||
[:checks [:amount [:check [:amount :s3_url :check_number ]]]]
|
||||
]]}]}
|
||||
:on-success [::expense-accounts-updated]}})))
|
||||
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::expense-accounts-updated
|
||||
(fn [{:keys [db]} [_ data]]
|
||||
(let [updated (:edit-expense-accounts data)]
|
||||
{:dispatch [::events/modal-completed ::change-expense-accounts]
|
||||
:db (-> db
|
||||
(update-in [::invoice-page :invoices]
|
||||
|
||||
(fn [is]
|
||||
|
||||
(replace-if #(= (:id %1) (:id %2)) updated is)))
|
||||
(dissoc ::change-expense-accounts))})))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::add-expense-account-split
|
||||
(fn [db _]
|
||||
(let [{{{:keys [locations]} :client} :invoice} @(re-frame/subscribe [::change-expense-accounts])]
|
||||
(update-in db [::change-expense-accounts :invoice :expense-accounts]
|
||||
conj {:amount 0 :expense-account-id nil :location (first locations)}))))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::remove-expense-account-split
|
||||
(fn [db [_ index]]
|
||||
(update-in db [::change-expense-accounts :invoice :expense-accounts]
|
||||
(fn [expense-accounts]
|
||||
(vec (concat (take index expense-accounts)
|
||||
(drop (inc index) expense-accounts)))))))
|
||||
Reference in New Issue
Block a user