manual ledger entries delete experience

This commit is contained in:
Bryce Covert
2020-09-30 07:11:09 -07:00
parent 429b02884a
commit fc9f45b847
4 changed files with 40 additions and 7 deletions

View File

@@ -829,6 +829,11 @@
:args {:filters {:type :transaction_filters}
:ids {:type '(list :id)}}
:resolve :mutation/unapprove-transactions}
:delete_external_ledger {:type :message
:args {:filters {:type :ledger_filters}
:ids {:type '(list :id)}}
:resolve :mutation/delete-external-ledger}
:delete_transactions {:type :message
:args {:filters {:type :transaction_filters}
:ids {:type '(list :id)}}
@@ -1175,6 +1180,7 @@
:mutation/edit-invoice gq-invoices/edit-invoice
:mutation/edit-transaction gq-transactions/edit-transaction
:mutation/unapprove-transactions gq-transactions/unapprove-transactions
:mutation/delete-external-ledger gq-ledger/delete-external-ledger
:mutation/delete-transactions gq-transactions/delete-transactions
:mutation/upsert-transaction-rule gq-transaction-rules/upsert-transaction-rule
:test-transaction-rule gq-transaction-rules/test-transaction-rule

View File

@@ -205,6 +205,9 @@
(catch Exception e
(assoc entry :error (.getMessage e))))))
(defn delete-external-ledger [context args value]
)
(defn import-ledger [context args value]
(assert-admin (:id context))
(lc/with-context {:area "import ledger"}

View File

@@ -2,9 +2,14 @@
(:require [auto-ap.subs :as subs]
[auto-ap.views.components.layouts :refer [side-bar-layout]]
[auto-ap.views.pages.data-page :as data-page]
[auto-ap.views.pages.ledger.side-bar :as side-bar :refer [ledger-side-bar]]
[auto-ap.views.pages.ledger.external-ledger-table :as table]
[auto-ap.views.utils :refer [with-user]]
[auto-ap.views.pages.ledger.side-bar
:as
side-bar
:refer
[ledger-side-bar]]
[auto-ap.views.utils :refer [with-user dispatch-event]]
[auto-ap.status :as status]
[clojure.set :as set]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
@@ -71,9 +76,26 @@
(defn ledger-content []
(let [current-client @(re-frame/subscribe [::subs/client])]
(let [current-client @(re-frame/subscribe [::subs/client])
checked @(re-frame/subscribe [::data-page/checked ::page])]
[:div
[:h1.title "External Ledger"]
[:div.is-pulled-right
[:div.buttons
(into [:div.tags ] (map (fn [[z {:keys [id external-id]}]]
(if (= "header" z)
[:span.tag.is-medium {:on-click
(dispatch-event [::data-page/remove-check ::page "header"])}
"All visible ledger entries"]
[:span.tag.is-medium external-id
[:button.delete.is-small {:on-click
(dispatch-event [::data-page/remove-check ::page id])}]]))
checked))
[:button.button.is-danger {#_#_:on-click (dispatch-event [::delete-selected params])
:class (status/class-for @(re-frame/subscribe [::status/single ::delete-selected]))
:disabled true #_(or (status/disabled-for @(re-frame/subscribe [::status/single ::delete-selected]))
(not (seq checked)))}
"Delete selected"]]]
[table/table {:id :ledger
:data-page ::page}]]))

View File

@@ -13,7 +13,7 @@
(defn external-ledger-row [{{:keys [client vendor alternate-description status date amount id source external-id line-items] :as i} :row
:keys [selected-client accounts-by-id bank-accounts-by-id]}]
[:<>
[grid/row {:class (:class i) :id id}
[grid/row {:class (:class i) :id id :checkable? true :entity i}
(when-not selected-client
[grid/cell {} (:name client)])
[grid/cell {} source ]
@@ -31,7 +31,7 @@
:let [account (or (accounts-by-id (:id account))
(bank-accounts-by-id (:id account)))]]
^{:key id}
[grid/row {}
[grid/row {:checkable? false}
(when-not selected-client
[grid/cell {} ])
[grid/cell {} ]
@@ -46,16 +46,18 @@
[grid/cell {:class "has-text-right"} (when credit (nf credit ))]])]])
(defn table [{:keys [id data-page status vendors on-check-changed expense-event]}]
(let [{:keys [data status]} @(re-frame/subscribe [::data-page/page data-page])
(let [{:keys [data status params]} @(re-frame/subscribe [::data-page/page data-page])
selected-client @(re-frame/subscribe [::subs/client])
accounts-by-id @(re-frame/subscribe [::subs/accounts-by-id selected-client])
bank-accounts-by-id @(re-frame/subscribe [::subs/bank-accounts-by-id])]
[grid/grid {:data-page data-page
:check-boxes? true
:column-count (if selected-client 7 8)}
[grid/controls data]
[grid/table {:fullwidth true :class ["wrappable"]}
[grid/header
[grid/row {}
[grid/row {:id "header"
:entity params}
(when-not selected-client
[grid/sortable-header-cell {:sort-key "client" :sort-name "Client"} "Client"])
[grid/sortable-header-cell {:sort-key "source" :sort-name "Source" :style {:width "10em"}} "Source"]