diff --git a/docker-compose.staging.yml b/docker-compose.staging.yml index da6a1582..a326b42b 100644 --- a/docker-compose.staging.yml +++ b/docker-compose.staging.yml @@ -25,9 +25,9 @@ services: restart: always environment: config: /usr/local/config/staging.edn - VIRTUAL_HOST: staging2.app.integreatconsult.com + VIRTUAL_HOST: staging.app.integreatconsult.com VIRTUAL_PORT: 3000 - LETSENCRYPT_HOST: staging2.app.integreatconsult.com + LETSENCRYPT_HOST: staging.app.integreatconsult.com LETSENCRYPT_EMAIL: le@brycecovertoperations.com database: ports: diff --git a/src/clj/auto_ap/datomic/ledger.clj b/src/clj/auto_ap/datomic/ledger.clj index 17281ba2..4631e7a6 100644 --- a/src/clj/auto_ap/datomic/ledger.clj +++ b/src/clj/auto_ap/datomic/ledger.clj @@ -8,13 +8,13 @@ (defn sort-fn [sort-by] (cond (= "client" sort-by) - #(-> % :transaction/client :client/name) + #(-> % :journal-entry/client :client/name) - (= "account" sort-by) - #(vector (-> % :transaction/account :account/name) (-> % :db/id)) + (= "vendor" sort-by) + #(-> % :journal-entry/vendor :vendor/name) :else - (keyword "transaction" sort-by))) + (keyword "journal-entry" sort-by))) (defn raw-graphql-ids [db args] @@ -26,6 +26,7 @@ (:sort-by args) (add-sorter-field {"client" ['[?e :journal-entry/client ?c] '[?c :client/name ?sorter]] "date" ['[?e :journal-entry/date ?sorter]] + "vendor" ['[?e :journal-entry/vendor ?sorter]] "amount" ['[?e :journal-entry/amount ?sorter]]} args) @@ -75,7 +76,6 @@ true (merge-query {:query {:find ['?e] :where ['[?e :journal-entry/date]]}}))] - (println query) (cond->> query true (d/query) (:sort-by args) (apply-sort-2 args) diff --git a/src/clj/auto_ap/datomic/migrate.clj b/src/clj/auto_ap/datomic/migrate.clj index dce7bef9..10a19809 100644 --- a/src/clj/auto_ap/datomic/migrate.clj +++ b/src/clj/auto_ap/datomic/migrate.clj @@ -129,8 +129,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]} + #_#_: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]} }] (println "Conforming database...") diff --git a/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj b/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj index f9827561..8eac9c8a 100644 --- a/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj +++ b/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj @@ -160,7 +160,20 @@ (mapv (fn [[numeric {:keys [name location]}]] (remove-nils - {:account/type :account-type/expense + {:account/type (cond (<= 1000 numeric 1999) + :account-type/asset + + (<= 2000 numeric 2999) + :account-type/liability + + (<= 3000 numeric 3999) + :account-type/equity + + (<= 4000 numeric 4999) + :account-type/revenue + + :else + :account-type/expense) :account/numeric-code numeric :account/code (str numeric) :account/name name @@ -186,7 +199,8 @@ :where ['[?e :invoice/total]]} :args [(d/db conn)]})) z (->> invoice-ids - (mapv #(vector (ledger/entity-change->ledger (d/db conn) [:invoice %]))))] + (map #(ledger/entity-change->ledger (d/db conn) [:invoice %])) + (partition-all 100))] z)) @@ -199,11 +213,13 @@ z (->> transaction-ids (map #(ledger/entity-change->ledger (d/db conn) [:transaction %])) (filter identity) - (mapv #(vector %)))] + (partition-all 100) + #_(mapv #(vector %)))] z)) #_(test-run (bulk-load-transaction-ledger (d/connect auto-ap.datomic/uri))) #_(test-run (bulk-load-invoice-ledger (d/connect auto-ap.datomic/uri))) +#_(test-run (reset-ledger (d/connect auto-ap.datomic/uri))) #_(do (doseq [tran (convert-transactions (d/connect auto-ap.datomic/uri))] @(d/transact (d/connect auto-ap.datomic/uri) tran)) @@ -294,6 +310,15 @@ +(defn reset-ledger [conn] + (let [results (->> (d/query {:query {:find '[?e] + :in '[$] + :where ['[?e :journal-entry/original-entity ]]} + :args [(d/db conn)]}) + (mapv (fn [[id]] + [:db/retractEntity id])) + (partition-all 100))] + results)) #_(do (doseq [tran (convert-transactions (d/connect auto-ap.datomic/uri))] @(d/transact (d/connect auto-ap.datomic/uri) tran)) diff --git a/src/clj/auto_ap/ledger.clj b/src/clj/auto_ap/ledger.clj index b52cecc5..6c4dd502 100644 --- a/src/clj/auto_ap/ledger.clj +++ b/src/clj/auto_ap/ledger.clj @@ -10,7 +10,6 @@ (map :a) (map namespace) set)] - (cond (namespaces "invoice" ) [[:invoice e]] (namespaces "invoice-expense-account" ) [[:invoice (:db/id (:invoice/_expense-accounts entity))]] (namespaces "transaction-account" ) [[:transaction (:db/id (:transaction/_accounts entity))]] @@ -24,7 +23,6 @@ (map :a) (map namespace) set)] - (cond (namespaces "invoice" ) :invoice (namespaces "invoice-expense-account" ) :invoice-expense-account (namespaces "transaction-account" ) :transaction-account @@ -52,7 +50,6 @@ :journal-entry-line/location (or (:invoice-expense-account/location ea) "HQ") ;; TODO? :journal-entry-line/debit (:invoice-expense-account/amount ea)})) (:invoice/expense-accounts entity))) - :journal-entry/cleared (and (< (:invoice/outstanding-balance entity) 0.01) (every? #(= :payment-status/cleared (:payment/status %)) (:invoice/payments entity)) )}))) @@ -68,7 +65,6 @@ decreasing? (< (:transaction/amount entity) 0.0) credit-from-bank? decreasing? debit-from-bank? (not decreasing?)] - (when-not (:transaction/exclude-from-ledger entity) (remove-nils {:journal-entry/source "transaction" @@ -93,7 +89,9 @@ (Math/abs (:transaction-account/amount a))) :journal-entry-line/credit (when debit-from-bank? (Math/abs (:transaction-account/amount a)))})) - (:transaction/accounts entity))) + (if (seq (:transaction/accounts entity)) + (:transaction/accounts entity) + [{:transaction-account/amount (:transaction/amount entity)}]))) :journal-entry/cleared true})))) diff --git a/src/cljs/auto_ap/views/components/invoice_table.cljs b/src/cljs/auto_ap/views/components/invoice_table.cljs index 1b1e5031..1fc89175 100644 --- a/src/cljs/auto_ap/views/components/invoice_table.cljs +++ b/src/cljs/auto_ap/views/components/invoice_table.cljs @@ -78,8 +78,6 @@ [paginator {:start start :end end :count count :total total :on-change (fn [p ] (on-params-change (merge @params p) ))}] - "Showing " (inc start) "-" end "/" total - [:table.table.is-fullwidth [:thead [:tr diff --git a/src/cljs/auto_ap/views/components/paginator.cljs b/src/cljs/auto_ap/views/components/paginator.cljs index cf122e63..c56638af 100644 --- a/src/cljs/auto_ap/views/components/paginator.cljs +++ b/src/cljs/auto_ap/views/components/paginator.cljs @@ -51,4 +51,5 @@ [:ul.pagination-list extended-first-page-button (apply list (subvec all-buttons first-page-button last-page-button)) - extended-last-page-button]])) + extended-last-page-button + "Showing " (Math/min (inc start) total) "-" end "/" total]])) diff --git a/src/cljs/auto_ap/views/pages/checks.cljs b/src/cljs/auto_ap/views/pages/checks.cljs index 618640ec..ea978c84 100644 --- a/src/cljs/auto_ap/views/pages/checks.cljs +++ b/src/cljs/auto_ap/views/pages/checks.cljs @@ -136,8 +136,6 @@ [paginator {:start start :end end :count count :total total :on-change (fn [p ] (on-params-change (merge @params p)))}] - "Showing " (inc start) "-" end "/" total - [:table.table.is-fullwidth [:thead [:tr diff --git a/src/cljs/auto_ap/views/pages/ledger.cljs b/src/cljs/auto_ap/views/pages/ledger.cljs index f0ff967c..6fa63ac3 100644 --- a/src/cljs/auto_ap/views/pages/ledger.cljs +++ b/src/cljs/auto_ap/views/pages/ledger.cljs @@ -33,7 +33,6 @@ (re-frame/reg-event-fx ::params-change (fn [cofx [_ params]] - {:db (-> (:db cofx) (assoc-in [:status :loading] true) (assoc-in [::params] params)) diff --git a/src/cljs/auto_ap/views/pages/ledger/profit_and_loss.cljs b/src/cljs/auto_ap/views/pages/ledger/profit_and_loss.cljs index de8c1ea2..85f2c76f 100644 --- a/src/cljs/auto_ap/views/pages/ledger/profit_and_loss.cljs +++ b/src/cljs/auto_ap/views/pages/ledger/profit_and_loss.cljs @@ -134,6 +134,8 @@ [:comparable-balance-sheet-accounts [:name :amount :account-type :id :numeric-code :location]]]]]} :on-success [::received]}})) + + (re-frame/reg-event-fx ::date-picked (fn [cofx [_ f date]] @@ -149,26 +151,17 @@ :to-date to :selected selected)]})) + (re-frame/reg-event-fx - ::investigate-clicked - (fn [{:keys [db] } [_ location from-numeric-code to-numeric-code which]] + ::ledger-params-changed + (fn [{:keys [db]} [_ params]] + {:db (assoc db - ::ledger-list-active? true - ::ledger-list-loading true) + ::ledger-list-loading true + ::ledger-params params) :graphql {:token (-> db :user) :query-obj {:venia/queries [[:ledger-page - {:client-id (:id @(re-frame/subscribe [::subs/client])) - :from-numeric-code from-numeric-code - :to-numeric-code to-numeric-code - :location location - :from-date (if (= :current which) - (:from-date (::params db)) - (date->str (t/minus (str->date (:from-date (::params db)) standard) (t/years 1)) - standard)) - :to-date (if (= :current which) - (:to-date (::params db)) - (date->str (t/minus (str->date (:to-date (::params db)) standard) (t/years 1)) - standard))} + params [[:journal-entries [:id :source :amount @@ -185,6 +178,28 @@ :end]]]} :on-success [::ledger-list-received]}})) +(re-frame/reg-event-fx + ::investigate-clicked + (fn [{:keys [db] } [_ location from-numeric-code to-numeric-code which]] + + {:db (assoc db + ::ledger-list-active? true + ::ledger-list-loading true) + + :dispatch [::ledger-params-changed (assoc (::ledger-params db) + :client-id (:id @(re-frame/subscribe [::subs/client])) + :from-numeric-code from-numeric-code + :to-numeric-code to-numeric-code + :location location + :from-date (if (= :current which) + (:from-date (::params db)) + (date->str (t/minus (str->date (:from-date (::params db)) standard) (t/years 1)) + standard)) + :to-date (if (= :current which) + (:to-date (::params db)) + (date->str (t/minus (str->date (:to-date (::params db)) standard) (t/years 1)) + standard)))]})) + (def groupings {:expense [["1100 Cash and Bank Accounts" 1100 1199] @@ -408,10 +423,13 @@ [:div [:a.delete.is-pulled-right {:on-click (dispatch-event [::ledger-list-closing])}] [:div [:h1.title "Ledger entries"] - [table {:ledger-page ledger-page + [table {:id :ledger + :ledger-page ledger-page :status? false :status (re-frame/subscribe [::ledger-list-loading]) - :params (re-frame/subscribe [::ledger-params])} ]]])) + :params (re-frame/subscribe [::ledger-params]) + :on-params-change (fn [params] + (re-frame/dispatch [::ledger-params-changed params]))}]]])) (defn profit-and-loss-page [] (let [ledger-list-active? @(re-frame/subscribe [::ledger-list-active?])] diff --git a/src/cljs/auto_ap/views/pages/ledger/table.cljs b/src/cljs/auto_ap/views/pages/ledger/table.cljs index 7d660020..93c00854 100644 --- a/src/cljs/auto_ap/views/pages/ledger/table.cljs +++ b/src/cljs/auto_ap/views/pages/ledger/table.cljs @@ -19,7 +19,7 @@ [paginator {:start start :end end :count count :total total :on-change (fn [p ] (on-params-change (merge @params p)))}] - "Showing " (inc start) "-" end "/" total + [:table.table.is-fullwidth.compact [:thead @@ -34,7 +34,7 @@ [sorted-column {:on-sort opc :style {:width percentage-size :cursor "pointer"} - :sort-key "description-original" + :sort-key "vendor" :sort-by sort-by :asc asc} "Vendor"] @@ -48,11 +48,8 @@ :sort-by sort-by :asc asc} "Date"] - [sorted-column {:on-sort opc - :style {:width percentage-size :cursor "pointer"} - :sort-key "account" - :sort-by sort-by - :asc asc} + [:th + {:style {:width percentage-size }} "Account"] [sorted-column {:on-sort opc :style {:width "8em" :cursor "pointer"} diff --git a/src/cljs/auto_ap/views/pages/transactions/table.cljs b/src/cljs/auto_ap/views/pages/transactions/table.cljs index 4adcf7c0..c166bc08 100644 --- a/src/cljs/auto_ap/views/pages/transactions/table.cljs +++ b/src/cljs/auto_ap/views/pages/transactions/table.cljs @@ -41,7 +41,6 @@ [paginator {:start start :end end :count count :total total :on-change (fn [p ] (on-params-change (merge @params p)))}] - "Showing " (inc start) "-" end "/" total [:table.table.is-fullwidth [:thead