Makes cash flow report match closely to ben's recommendations
This commit is contained in:
@@ -233,19 +233,17 @@
|
|||||||
|
|
||||||
|
|
||||||
(defn find-conflicting [{:keys [:invoice/invoice-number :invoice/vendor :invoice/client :db/id]}]
|
(defn find-conflicting [{:keys [:invoice/invoice-number :invoice/vendor :invoice/client :db/id]}]
|
||||||
|
|
||||||
(->> (d/query
|
(->> (d/query
|
||||||
(cond-> {:query {:find [(list 'pull '?e default-read)]
|
(cond-> {:query {:find [(list 'pull '?e default-read)]
|
||||||
:in ['$ '?invoice-number '?vendor '?client '?invoice-id]
|
:in ['$ '?invoice-number '?vendor '?client '?invoice-id]
|
||||||
:where '[[?e :invoice/invoice-number ?invoice-number]
|
:where '[[?e :invoice/invoice-number ?invoice-number]
|
||||||
[?e :invoice/vendor ?vendor]
|
[?e :invoice/vendor ?vendor]
|
||||||
[?e :invoice/client ?client]
|
[?e :invoice/client ?client]
|
||||||
(not [?e :invoice/status :invoice-status/voided])
|
(not [?e :invoice/status :invoice-status/voided])
|
||||||
[(not= ?e ?invoice-id)]]}
|
[(not= ?e ?invoice-id)]]}
|
||||||
|
:args [(d/db (d/connect uri)) invoice-number vendor client (or id 0)]}))
|
||||||
:args [(d/db (d/connect uri)) invoice-number vendor client (or id 0)]}))
|
|
||||||
(map first)
|
(map first)
|
||||||
|
|
||||||
(map <-datomic)))
|
(map <-datomic)))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -73,18 +73,39 @@
|
|||||||
["97000 Taxes" 97000 97999]
|
["97000 Taxes" 97000 97999]
|
||||||
["98000 Other Expenses" 98000 98999]]
|
["98000 Other Expenses" 98000 98999]]
|
||||||
|
|
||||||
:operating-activities [["Accounts Payable" 21000 27999 :add]
|
:operating-activities [
|
||||||
["Accounts Receivable" 12200 12899 :subtract]
|
;; BEN EDIT STARTING HERE
|
||||||
["CCP" 12000 12199 :subtract]
|
["21000-24000 Accounts Payable" 21000 23999 :add]
|
||||||
["Receipts Split" 12900 12999 :subtract]
|
["25000-28000 Accounts Payable" 25000 27999 :add]
|
||||||
["Depreciation Expense" 96000 96999 :add]
|
["24000-25000 Accrual Liabilities" 24000 24999 :add]
|
||||||
["Inventory" 13000 13999 :subtract]
|
["12000-13000 Accounts Receivable" 12000 13000 :subtract]
|
||||||
|
["96000-97000 Depreciation Expense" 96000 96999 :add]
|
||||||
|
["13000-15000 Inventory" 13000 14999 :subtract]
|
||||||
|
;; BEN ENDING HERE
|
||||||
]
|
]
|
||||||
|
|
||||||
:investment-activities [["14000-18000 Investments" 14000 17999 :subtract]]
|
:investment-activities [
|
||||||
:financing-activities [["Owner's Distributions" 34000 35999 :subtract]
|
|
||||||
["Owner's Contributions" 33000 33999 :add]
|
;; BEN EDIT STARTING HERE
|
||||||
["Loans" 28000 28599 :add]]})
|
["15000-18000 Investments" 15000 17999 :subtract]
|
||||||
|
;; BEN ENDING HERE
|
||||||
|
|
||||||
|
]
|
||||||
|
:financing-activities [
|
||||||
|
;; BEN EDIT STARTING HERE
|
||||||
|
["30000-33000 Other Equity Accounts" 30000 32999 :subtract]
|
||||||
|
["33000-34000 Owner's Contributions" 33000 33999 :subtract]
|
||||||
|
["34000-35000 Owner's Distributions" 34000 34999 :subtract]
|
||||||
|
["35000-36000 Retained Earnings" 35000 35999 :subtract]
|
||||||
|
["28000-29000 Loans (payable)" 28000 28999 :add]
|
||||||
|
;; BEN ENDING HERE
|
||||||
|
]
|
||||||
|
:cash [
|
||||||
|
;; BEN EDIT STARTING HERE
|
||||||
|
["11000-11400 Bank Accounts / Cash" 11000 11399 :add]
|
||||||
|
;; BEN ENDING HERE
|
||||||
|
|
||||||
|
]})
|
||||||
|
|
||||||
(def cashflow-aggregation
|
(def cashflow-aggregation
|
||||||
(->> (select-keys groupings [:operating-activities :investment-activities :financing-activities])
|
(->> (select-keys groupings [:operating-activities :investment-activities :financing-activities])
|
||||||
@@ -530,6 +551,33 @@
|
|||||||
{:header (headers pnl-datas title)
|
{:header (headers pnl-datas title)
|
||||||
:rows (combine-tables pnl-datas table percent-of-sales deltas)}))
|
:rows (combine-tables pnl-datas table percent-of-sales deltas)}))
|
||||||
|
|
||||||
|
(defn cash-flow-headers [[pnl-data :as pnl-datas] header-title]
|
||||||
|
(let [big-header (into [{:value header-title
|
||||||
|
:bold true}]
|
||||||
|
(map-indexed (fn [i p]
|
||||||
|
(cond-> {:value
|
||||||
|
(str (date->str (:start p))
|
||||||
|
" - "
|
||||||
|
(date->str (:end p)))
|
||||||
|
:colspan 3
|
||||||
|
:align :center
|
||||||
|
:bold true}
|
||||||
|
(odd? i) (assoc :bg-color [240 240 240])))
|
||||||
|
(:periods (:args pnl-data))))
|
||||||
|
sub-header (into [{:value "Account"}]
|
||||||
|
(mapcat
|
||||||
|
(fn [p]
|
||||||
|
[(merge {:value "Increases"
|
||||||
|
:align :right}
|
||||||
|
(:cell-args p))
|
||||||
|
(merge {:value "Decreases"
|
||||||
|
:align :right}
|
||||||
|
(:cell-args p))
|
||||||
|
(merge {:value "+/- in Cash"
|
||||||
|
:align :right}
|
||||||
|
(:cell-args p))])
|
||||||
|
pnl-datas))]
|
||||||
|
[big-header sub-header]))
|
||||||
|
|
||||||
(defn cash-flow-detail-rows
|
(defn cash-flow-detail-rows
|
||||||
[pnl-datas grouping title]
|
[pnl-datas grouping title]
|
||||||
@@ -542,9 +590,11 @@
|
|||||||
account-codes (used-accounts pnl-datas)]
|
account-codes (used-accounts pnl-datas)]
|
||||||
:when (seq account-codes)
|
:when (seq account-codes)
|
||||||
row (-> [(into [{:value (str "---" grouping-name "---")}]
|
row (-> [(into [{:value (str "---" grouping-name "---")}]
|
||||||
(map
|
(mapcat
|
||||||
(fn [p]
|
(fn [p]
|
||||||
(assoc (:cell-args p) :value "" :format ""))
|
[(assoc (:cell-args p) :value "" :format "")
|
||||||
|
(assoc (:cell-args p) :value "" :format "")
|
||||||
|
(assoc (:cell-args p) :value "" :format "")])
|
||||||
pnl-datas)
|
pnl-datas)
|
||||||
)]
|
)]
|
||||||
(into (for [{:keys [numeric-code name]} account-codes]
|
(into (for [{:keys [numeric-code name]} account-codes]
|
||||||
@@ -592,9 +642,11 @@
|
|||||||
row)]
|
row)]
|
||||||
(-> [(into [{:value title
|
(-> [(into [{:value title
|
||||||
:bold true}]
|
:bold true}]
|
||||||
(map
|
(mapcat
|
||||||
(fn [p]
|
(fn [p]
|
||||||
(assoc (:cell-args p) :value "" :format ""))
|
[(assoc (:cell-args p) :value "" :format "")
|
||||||
|
(assoc (:cell-args p) :value "" :format "")
|
||||||
|
(assoc (:cell-args p) :value "" :format "")])
|
||||||
pnl-datas))]
|
pnl-datas))]
|
||||||
(into individual-accounts)
|
(into individual-accounts)
|
||||||
(conj (cashflow-subtotal-by-column-row pnl-datas title)))))
|
(conj (cashflow-subtotal-by-column-row pnl-datas title)))))
|
||||||
@@ -616,15 +668,16 @@
|
|||||||
:financing-activities
|
:financing-activities
|
||||||
(str prefix " Financing Activities")))
|
(str prefix " Financing Activities")))
|
||||||
|
|
||||||
|
(into (cash-flow-detail-rows pnl-datas
|
||||||
|
:cash
|
||||||
|
(str prefix " Bank Accounts / Cash")))
|
||||||
|
|
||||||
(conj (cashflow-subtotal-by-column-row (map #(-> %
|
(conj (cashflow-subtotal-by-column-row (map #(-> %
|
||||||
(filter-categories [:operating-activities :investment-activities :financing-activities])
|
(filter-categories [:operating-activities :investment-activities :financing-activities :cash])
|
||||||
#_(negate #{:cogs :payroll :controllable :fixed-overhead :ownership-controllable}))
|
#_(negate #{:cogs :payroll :controllable :fixed-overhead :ownership-controllable}))
|
||||||
pnl-datas)
|
pnl-datas)
|
||||||
"Change in Cash and Cash Equivalents")))]
|
"Change in Cash and Cash Equivalents")))]
|
||||||
{:header [[{:value "Account"}
|
{:header (cash-flow-headers pnl-datas "Cash Flow")
|
||||||
{:value "Increases"}
|
|
||||||
{:value "Decreases"}
|
|
||||||
{:value "Total"}]]
|
|
||||||
:rows table}))
|
:rows table}))
|
||||||
|
|
||||||
(defn warning-message [pnl-data]
|
(defn warning-message [pnl-data]
|
||||||
|
|||||||
Reference in New Issue
Block a user