transaction date range. Need to generalize filter changing.

This commit is contained in:
Bryce Covert
2019-05-03 07:54:21 -07:00
parent b176647585
commit 34751fe77a
6 changed files with 89 additions and 5 deletions

View File

@@ -0,0 +1,12 @@
Id Client Source Vendor Date Account Location Debit Credit
ABC DEMO Payroll Dummy 12/19/2018 5310 HQ 100 0
ABC DEMO Payroll 123551123 12/19/2018 DEMO-1 HQ 0 50
ABC DEMO Payroll 123551123 12/19/2018 DEMO-1 HQ 0 50
DEF DEMO Payroll 223551123 12/19/2018 2950 HQ 0 50
GHI DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
1 DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
234 DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
8912 DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
aosentuh DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
aonet DEMO Payroll 123551123 12/19/2018 2750 HQ 0 50
1923 DEMO Payroll 123551123 12/19/2018 2950 HQ 0 50
1 Id Client Source Vendor Date Account Location Debit Credit
2 ABC DEMO Payroll Dummy 12/19/2018 5310 HQ 100 0
3 ABC DEMO Payroll 123551123 12/19/2018 DEMO-1 HQ 0 50
4 ABC DEMO Payroll 123551123 12/19/2018 DEMO-1 HQ 0 50
5 DEF DEMO Payroll 223551123 12/19/2018 2950 HQ 0 50
6 GHI DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
7 1 DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
8 234 DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
9 8912 DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
10 aosentuh DEMO Payroll 123551123 12/19/2018 21550 HQ 100 0
11 aonet DEMO Payroll 123551123 12/19/2018 2750 HQ 0 50
12 1923 DEMO Payroll 123551123 12/19/2018 2950 HQ 0 50

View File

@@ -2,7 +2,8 @@
(:require [datomic.api :as d]
[auto-ap.datomic :refer [uri merge-query apply-sort-2 apply-sort apply-pagination add-sorter-field]]
[auto-ap.graphql.utils :refer [limited-clients]]
[clj-time.coerce :as c]))
[clj-time.coerce :as c]
[clj-time.coerce :as coerce]))
(defn sort-fn [sort-by]
(cond
@@ -51,6 +52,17 @@
(merge-query {:query {:in ['?client-id]
:where ['[?e :transaction/client ?client-id]]}
:args [(:client-id args)]})
(:start (:date-range args))
(merge-query {:query {:in ['?start-date]
:where ['[?e :transaction/date ?date]
'[(>= ?date ?start-date)]]}
:args [(coerce/to-date (:start (:date-range args)))]})
(:end (:date-range args))
(merge-query {:query {:in ['?end-date]
:where ['[?e :transaction/date ?date]
'[(<= ?date ?end-date)]]}
:args [(coerce/to-date (:end (:date-range args)))]})
(:client-code args)
(merge-query {:query {:in ['?client-code]

View File

@@ -325,6 +325,7 @@
:transaction_page {:type '(list :transaction_page)
:args {:client_id {:type :id}
:bank_account_id {:type :id}
:date_range {:type :date_range}
:start {:type 'Int}
:sort_by {:type 'String}
:asc {:type 'Boolean}}
@@ -368,6 +369,9 @@
:invoice_payment_amount {:fields {:invoice_id {:type :id}
:amount {:type 'Float}}}
:date_range {:fields {:start {:type :iso_date}
:end {:type :iso_date}}}
:import_ledger_line_item {:fields {:account_identifier {:type 'String}
:location {:type 'String}
:debit {:type 'String}

View File

@@ -0,0 +1,38 @@
(ns auto-ap.views.components.date-range-filter
(:require
[clojure.spec.alpha :as s]
[auto-ap.entities.invoice :as invoice]
[auto-ap.views.components.typeahead :refer [typeahead]]
[auto-ap.views.utils :refer [bind-field date-picker]]))
(defn date-range-filter [{:keys [value on-change-event]}]
[:div.field
[:div.control
[:div.columns.is-variable.is-1
[:div.column
[bind-field
[date-picker {:class-name "input is-fullwidth"
:class "input"
:format-week-number (fn [] "")
:previous-month-button-label ""
:placeholder "Start Date mm/dd/yyyy"
:next-month-button-label ""
:next-month-label ""
:event on-change-event
:type "date"
:field [:start]
:subscription value}]]]
[:div.column.is-narrow " to "]
[:div.column
[bind-field
[date-picker {:class-name "input is-fullwidth"
:class "input"
:format-week-number (fn [] "")
:previous-month-button-label ""
:placeholder "Start Date mm/dd/yyyy"
:next-month-button-label ""
:event on-change-event
:next-month-label ""
:type "date"
:field [:end]
:subscription value}]]]]]])

View File

@@ -3,6 +3,7 @@
[auto-ap.forms :as forms]
[auto-ap.subs :as subs]
[auto-ap.views.components.bank-account-filter :refer [bank-account-filter]]
[auto-ap.views.components.date-range-filter :refer [date-range-filter]]
[auto-ap.views.components.layouts :refer [appearing-side-bar side-bar-layout]]
[auto-ap.views.components.modal :refer [action-modal]]
[auto-ap.views.components.paginator :refer [paginator]]
@@ -12,7 +13,7 @@
[auto-ap.views.pages.transactions.common :refer [transaction-read]]
[auto-ap.utils :refer [replace-by]]
[auto-ap.views.pages.transactions.manual :as manual]
[auto-ap.views.utils :refer [bind-field date->str dispatch-event nf]]
[auto-ap.views.utils :refer [bind-field date->str dispatch-event nf date-picker]]
[goog.string :as gstring]
[re-frame.core :as re-frame]))
@@ -63,7 +64,7 @@
::received
(fn [db [_ data]]
(-> db
(assoc ::transaction-page (first (:transaction-page data)))
(update ::transaction-page merge (first (:transaction-page data)))
(assoc-in [:status :loading] false))))
(re-frame/reg-event-db
@@ -78,6 +79,17 @@
(assoc-in updated [::params :bank-account-id] value))
updated))))
(re-frame/reg-event-fx
::change-selected-date-range
(fn [{:keys [db]} [_ key value]]
(let [[key] key
updated (-> db
(assoc-in [::transaction-page :date-range-filter key] value)
(assoc-in [::params :date-range key] value))]
{:dispatch [::params-change (::params updated)]
:db updated})))
(re-frame/reg-sub
::notification
(fn [db]
@@ -130,7 +142,12 @@
[bank-account-filter
{:on-change-event [::change-selected-bank-account]
:value (:bank-acount-filter @(re-frame/subscribe [::transaction-page]))
:bank-accounts @(re-frame/subscribe [::subs/bank-accounts])}]]]
:bank-accounts @(re-frame/subscribe [::subs/bank-accounts])}]]
[:p.menu-label "Date Range"]
[:div
[date-range-filter
{:on-change-event [::change-selected-date-range]
:value (:date-range-filter @(re-frame/subscribe [::transaction-page]))}]]]
:main [transactions-content]
:right-side-bar [appearing-side-bar
{:visible? transaction-bar-active?}

View File

@@ -123,7 +123,8 @@
[drop-down {:id [::expense-accounts id ]
:header [:a.button {:aria-haspopup true
:on-click (dispatch-event [::events/toggle-menu [::expense-accounts id]])
:tab-index "0"} "i"]}
:tab-index "0"}
[:span.icon-saving-bank-1]]}
[drop-down-contents
[:div
[:span.dropdown-item description-original ]]]]