Rename format-name, add TODO.md
This commit is contained in:
parent
5f801c99f3
commit
b4b42b72aa
4 changed files with 19 additions and 9 deletions
|
@ -8,7 +8,7 @@ Run with:
|
|||
|
||||
Or use a reduced set of options (missing values will be replaced by "TODO" in the output):
|
||||
|
||||
java -jar import-0.0.8-standalone.jar --csv 2023-12-27_Pay-Item-Details_2023-12-2.csv --period "December 2023" --total-fees 206.50
|
||||
java -jar import-0.0.8-standalone.jar --csv 2023-12-27_Pay-Item-Details_2023-12-2.csv --date 2023-12-29 --period "December 2023" --total-fees 206.50
|
||||
|
||||
|
||||
## Development
|
||||
|
@ -16,6 +16,10 @@ Or use a reduced set of options (missing values will be replaced by "TODO" in th
|
|||
The project is set up for development in Emacs and CIDER-mode. Open a source
|
||||
file and run `cider-jack-in`.
|
||||
|
||||
You can run without building using:
|
||||
|
||||
clojure -M -m core --csv 2023-12-27_Pay-Item-Details_2023-12-2.csv --date 2023-12-29 --period "December 2023" --total-fees 206.50
|
||||
|
||||
|
||||
## Build
|
||||
|
||||
|
|
10
TODO.md
Normal file
10
TODO.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# To-do
|
||||
|
||||
* Anatomise some payroll data for use as a test case
|
||||
* Validation/error handling on CLI arguments - required options like csv, date, period
|
||||
* Potentially move employee-name->entity-tag into config
|
||||
* Potentially move cat->payroll-type into config
|
||||
* Confirm it's "Withholding" in individual taxes and "Liability" in employer taxes
|
||||
* Confirm extra NY-only insurance/asset postings in individual taxes
|
||||
* Confirm lack of :Tax: in employer taxes eg. "US:Medicare", not "US:Tax:Medicare" as in individual taxes
|
||||
* Confirm lack of :memo for Karen
|
|
@ -10,9 +10,6 @@
|
|||
[import :as import])
|
||||
(:gen-class))
|
||||
|
||||
;; TODO: Tests
|
||||
;; TODO: Validation/error handling - required options like csv, date, period
|
||||
|
||||
(def cli-options
|
||||
[[nil "--csv FILE" "Pay Item Details CSV report"]
|
||||
[nil "--date DATE" "Date used for the transactions (YYYY-MM-DD)"
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
[clojure.java.io :as io]
|
||||
[clojure.string :as str]))
|
||||
|
||||
(defn- format-name
|
||||
(defn- employee-name->entity-tag
|
||||
"Convert the name from the Pay Item Details report into an entity slug for Beancount."
|
||||
[name]
|
||||
;; Should potentially be a lookup table in config.
|
||||
|
@ -29,7 +29,7 @@
|
|||
(group-by
|
||||
:name
|
||||
(for [[_ name _ category type & totals] (csv/read-csv reader)]
|
||||
{:name (import/format-name name)
|
||||
{:name (employee-name->entity-tag name)
|
||||
:category category
|
||||
:type type
|
||||
:amount (apply max (map bigdec (remove str/blank? totals)))})))))
|
||||
|
@ -142,9 +142,8 @@
|
|||
[date period receipt-no invoice-no groups]
|
||||
(for [[name records] groups]
|
||||
(let [retirement-lines (filter #(= (:type %) "Retirement") records)
|
||||
;; TODO: Have I got the liability/witholding right? Which is used in which report.
|
||||
witholding-lines (filter #(= (:type %) "Withholding") records)
|
||||
;; TODO: We seem to add these extra expense/asset postings for
|
||||
;; TODO: We seem to add these extra insurance/asset postings for
|
||||
;; Karen (NY) only, but not for say Pono/Sage/Bradley (OR). Confirm
|
||||
;; with Rosanne.
|
||||
insurance-lines (filter #(and (= (:type %) "Withholding")
|
||||
|
@ -224,7 +223,7 @@
|
|||
:meta (assoc-project
|
||||
name
|
||||
{:entity (first (str/split category #" "))
|
||||
:memo name ; TODO: Karen doesn't have a memo in January 2024
|
||||
:memo name
|
||||
:payroll-type (str "US:" (cat->payroll-type category))})})
|
||||
total-unemploy (->> unemploy-postings (map :amount) (reduce +))
|
||||
asset-postings [{:account "Assets:FR:Check2721"
|
||||
|
|
Loading…
Reference in a new issue