fixing vendors

This commit is contained in:
Bryce Covert
2019-05-05 01:00:30 -07:00
parent d63bb566dc
commit 3dafdd66c2
10 changed files with 56 additions and 9 deletions

View File

@@ -12,7 +12,7 @@
[clj-time.core :as time]
[clj-time.coerce :as coerce]))
(def uri "datomic:sql://invoices?jdbc:postgresql://database:5432/datomic?user=datomic&password=datomic")
(def uri "datomic:sql://invoices-backup?jdbc:postgresql://database:5432/datomic?user=datomic&password=datomic")
(defn create-database []
(d/create-database uri))

View File

@@ -120,8 +120,9 @@
:requires [:auto-ap/add-account-to-vendor]}
:auto-ap/add-credit-bank-account {:txes add-general-ledger/add-credit-bank-account
:requires [:auto-ap/add-location-to-transaction]}
:auto-ap/add-hidden-to-vendor {:txes-fn `add-general-ledger/add-hidden-to-vendor :requires [:auto-ap/add-credit-bank-account]}
:auto-ap/convert-vendors {:txes-fn `add-general-ledger/convert-vendors
:requires [:auto-ap/add-location-to-transaction]}
:requires [:auto-ap/add-hidden-to-vendor]}
:auto-ap/convert-invoices {:txes-fn `add-general-ledger/convert-invoices
:requires [:auto-ap/convert-vendors]}
@@ -129,6 +130,8 @@
:auto-ap/add-external-id-to-ledger {:txes add-general-ledger/add-external-id-to-ledger :requires [:auto-ap/add-yodlee-merchant2]}
:auto-ap/add-exclude-to-transaction {:txes add-general-ledger/add-exclude-to-transaction :requires [:auto-ap/add-external-id-to-ledger]}
:auto-ap/convert-transactions {:txes-fn `add-general-ledger/convert-transactions :requires [:auto-ap/add-external-id-to-ledger]}
#_#_:auto-ap/bulk-load-invoice-ledger3 {:txes-fn `add-general-ledger/bulk-load-invoice-ledger :requires [:auto-ap/convert-transactions]}
#_#_:auto-ap/bulk-load-transaction-ledger3 {:txes-fn `add-general-ledger/bulk-load-transaction-ledger :requires [:auto-ap/convert-transactions]}

View File

@@ -308,6 +308,21 @@
(def add-credit-bank-account
[[{:db/ident :bank-account-type/credit}]])
(defn add-hidden-to-vendor [conn]
[[{:db/ident :vendor/hidden
:db/valueType :db.type/boolean
:db/cardinality :db.cardinality/one
:db/doc "Whether or not to exclude the vendor"}]
(let [vendors (d/query {:query {:find '[?v]
:in '[$]
:where ['[?v :vendor/name]]}
:args [(d/db conn)]})]
(mapv
(fn [[v ]]
{:db/id v
:vendor/hidden false})
vendors))])
(defn reset-ledger [conn]

View File

@@ -90,6 +90,7 @@
{:fields {:id {:type :id}
:name {:type 'String}
:code {:type 'String}
:hidden {:type 'Boolean}
:print_as {:type 'String}
:primary_contact {:type :contact}
@@ -429,6 +430,7 @@
:name {:type 'String}
:code {:type 'String}
:hidden {:type 'Boolean}
:print_as {:type 'String}
:primary_contact {:type :add_contact}
:secondary_contact {:type :add_contact}

View File

@@ -8,13 +8,14 @@
[clojure.set :as set]))
(defn upsert-vendor [context {{:keys [id name code print_as primary_contact secondary_contact address default_account_id invoice_reminder_schedule] :as in} :vendor} value]
(defn upsert-vendor [context {{:keys [id name hidden code print_as primary_contact secondary_contact address default_account_id invoice_reminder_schedule] :as in} :vendor} value]
(let [_ (println default_account_id)
transaction [(remove-nils #:vendor {:db/id (if id
id
"vendor")
:name name
:code code
:hidden hidden
:print-as print_as
:default-account default_account_id
:invoice-reminder-schedule (keyword invoice_reminder_schedule)

View File

@@ -9,6 +9,7 @@
#(not (str/blank? %))))
(s/def ::name ::required-identifier)
(s/def ::hidden boolean?)
(s/def ::print-as (s/nilable string?))
(s/def ::invoice-reminder-schedule (s/nilable #{"Weekly" "Never" nil}))
@@ -21,7 +22,8 @@
(s/def ::code (s/nilable string?))
(s/def ::vendor (s/keys :req-un [::name
::default-account-id]
::default-account-id
::hidden]
:opt-un [::code
::id
::print-as

View File

@@ -45,11 +45,11 @@
[:id :name :code :email :locations [:bank-accounts [:id :code :number :bank-name :bank-code :check-number :name :routing :type :sort-order :visible :yodlee-account-id] ]
[:address [:street1 :street2 :city :state :zip]]]]
[:vendor
[:id :name [:default-account [:name :id :location]] [:primary-contact [:name :phone :email :id]] [:secondary-contact [:id :name :phone :email]] :print-as :invoice-reminder-schedule :code]]
[:id :name :hidden [:default-account [:name :id :location]] [:primary-contact [:name :phone :email :id]] [:secondary-contact [:id :name :phone :email]] :print-as :invoice-reminder-schedule :code]]
[:accounts [:numeric-code :location :name :type :account_set :id]]]}
:on-success [::received-initial]}}))))
(def vendor-query
[:id :name [:default-account [:name :id :location]]
[:id :name :hidden [:default-account [:name :id :location]]
[:primary-contact [:name :phone :email :id]]
[:secondary-contact [:id :name :phone :email]]
:print-as :invoice-reminder-schedule :code
@@ -67,7 +67,7 @@
:query-obj {:venia/queries [[:client
[:id :name :code [:address [:street1 :street2 :city :state :zip]] [:bank-accounts [:id :code :number :bank-name :bank-code :check-number :name :routing :type :sort-order :visible :yodlee-account-id] ]]]
[:vendor
[:id :name [:default-account [:name :id :location]] [:primary-contact [:name :phone :email :id]] [:secondary-contact [:id :name :phone :email]] :print-as :invoice-reminder-schedule :code]]
[:id :name :hidden [:default-account [:name :id :location]] [:primary-contact [:name :phone :email :id]] [:secondary-contact [:id :name :phone :email]] :print-as :invoice-reminder-schedule :code]]
[:accounts [:numeric-code :name :location :type :account_set :id]]]}
:on-success [::received-initial]}
@@ -221,6 +221,14 @@
vendor-query]}]}
:on-success [::save-complete]
:on-error [::save-error]}))))
(re-frame/reg-event-db
::save-error
(fn [db [_ vendor]]
(-> db
(assoc-in [:modal-state :auto-ap.views.main/user-editing-vendor :error] true)
(assoc-in [:modal-state :auto-ap.views.main/user-editing-vendor :saving?] false))))
(re-frame/reg-event-fx
::save-complete
(fn [{:keys [db]} [_ vendor]]

View File

@@ -81,6 +81,7 @@
(re-frame/reg-event-db
::save-error
(fn [db [_ vendor]]
(println "ERROR?")
(-> db
(assoc-in [:admin :vendor :error] true)
(assoc-in [:admin :vendor :saving?] false))))

View File

@@ -98,7 +98,7 @@
(re-frame/reg-sub
::vendors
(fn [db]
(vals (:vendors db))))
(filter #(not (:hidden %)) (vals (:vendors db)))))
(re-frame/reg-sub
::vendors-by-id
@@ -128,7 +128,11 @@
(re-frame/reg-sub
::user-editing-vendor
(fn [db]
(-> db :user-editing-vendor)))
(update (-> db :user-editing-vendor)
:hidden
#(if (nil? %)
false
%))))
(re-frame/reg-sub
::user

View File

@@ -45,6 +45,17 @@
:spec ::entity/print-as
:event change-event
:subscription vendor}]]]]
[horizontal-field
[:label.label "Hidden"]
[:div.control
[bind-field
[:input {:type "checkbox"
:field :hidden
:spec ::entity/hidden
:event change-event
:subscription vendor}]]]]
[:h2.subtitle "Expense Accounts"]
[horizontal-field
[:label.label "Default"]