packages feed

penny-bin 0.14.0.0 → 0.16.0.2

raw patch · 9 files changed

+22/−380 lines, 9 filesdep ~penny-lib

Dependency ranges changed: penny-lib

Files

− doc/amex-file-format.org
@@ -1,66 +0,0 @@-Amex CSV file format--Current as of December 2, 2012--This documents the Amex CSV that can be downloaded from the Amex-website. Obtain this by using the "Download" link that is available-when viewing account transactions. Be sure to select the checkbox for-"additional transaction details" or the like, as this format contains-the unique Amex ID numbers.--Newlines are with linefeeds only (UNIX style, not Windows style.)-Although newlines separate records, they also appear within some of-the fields, so you cannot split the file into records using newlines-alone (which makes it difficult to use line-oriented tools like awk.)--Here are the fields, in order. The fields are separated by commas. The-list starts at 1 (org-mode does not seem to like starting lists at 0.)--Many fields are unknown. These have always appeared blank in the data-I have.--1. Date. This is given as MM/DD/YYYY followed by a three-digit day of-   the week, such as "Wed".--2. Unknown--3. Description. This is the payee name (often truncated) followed by-   the city and state. This contains many spaces (presumably so it-   would line up in a table?) Appears wrapped in double quotes.--4. Unknown--5. Unknown--6. Unknown--7. Unknown--8. Amount. Charges appear simply with the amount; payments and credits-   appear with a prepended minus sign. This field is not wrapped in-   double quotes.--9. Unknown--10. Category. Appears to categorize the merchant (e.g. "Hardware-    Store") but the exact format is not immediately apparent;-    sometimes a number appears with the description, sometimes there-    are just numbers. This field is wrapped in double quotes.--11. Doing Business As. This seems to be the best place to pull the-    payee information from, as the Description field (number 3) mixes-    this up with other information. Double-quoted.--12. Address. Contains a street address with a city and state. Looks-    something like Street Address (newline) City (newline) State-    2-digit. Note the embedded newlines. Double-quoted.--13. Postcode. Postal code, then newline, then country. Note the-    embedded newline. Double-quoted.--14. Amex ID. A long integer. Appears within both double quotes and-    single quotes, e.g. "'320123300342679128'".--15. Unknown--16. Unknown
− doc/amex-workflow.org
@@ -1,68 +0,0 @@-Amex Workflow--Here is a proposed workflow for dealing with the download of Amex-transactions and the reconciliation of Amex statements.--* Import to database using amex-import--This will parse downloaded data from the Amex website and import them-to the database of all Amex transactions and will assign all-transactions a "U-number." The U-number is a unique number that-identifies an Amex transaction. U-numbers are used because, although-Amex assigns unique identifiers to transactions, they are extremely-long.--* Merge from database to ledger file using amex-merge--Checks to ensure that every transaction that is in the Amex database-is represented in the ledger. Follows these steps:--- Is the database transaction's U-number found in the numbers for the-  Amex transactions that are in the ledger? If so, stop.--- Otherwise, go through existing Amex ledger transactions that do not-  have a U-number and see if any of these match the database-  transaction. There is a match if all of the following are true:--  - The quantities match exactly;--  - The ledger transaction is a debit or a credit, as appropriate (if-    Amex shows an increase in the balance, then the ledger shows a-    credit; for payments, the ledger shows a debit.)--  - The date on the Amex transaction matches the local date on the-    ledger transaction.--- If no matches are found, create a transaction and append it to the-  end of the list of Ledger transactions. Assign the appropriate-  U-number. Prints new ledger file to stdout.--After running amex-merge, study the results. If necessary, assign the-U-numbers to already existing ledger transactions, or edit the newly-created transactions.--* Clear using amex-clear--This command will also work with a list of downloaded transactions. It-will follow these steps:--- Make sure that all the downloaded transactions are in the-  database. If not, quit with an error.--- Make sure that all the downloaded transaction U-numbers are also in-  the list of ledger transactions. If not, quit with an error.--- Make sure that each ledger posting corresponding to the downloaded-  transaction has no flag for the posting itself (a flag for the-  transaction is OK.) It one has a flag, quit with an error.--- Assign the flag "C" to each transaction. Prints new ledger file to stdout.--After running amex-clear, make sure that the balance of all cleared-and reconciled ledger Amex postings is the same as the Amex statement-balance.--* Reconcile using amex-reconcile--This command simply changes the "C" flags in the Amex ledger account-to "R" flags.
− doc/bofa-file-format.org
@@ -1,159 +0,0 @@-Bank of America download file format--This is the format for the "WEB Connect for Quicken 2010 and above"-option that is on the Bank of America download format. Ostensibly this-is OFX in SGML, but I don't know if this is actually true as I have-not yet found much about what "WEB Connect" is. A simple CSV would be-preferable; however, B of A does not make unique transaction IDs-available in CSV format. (QIF does not have this information, neither-does the "Microsoft Excel format" on the website, which appears to-just be a CSV.)--The file has DOS line endings (\r\n).--Unlike XML, tags are not always closed. The tag names are always in-all caps. It does appear that tags that open alone on a line are-balanced, while tags that are followed on the same line with data are-not balanced.--* Header--There is a header portion with nine lines. Each has the field name,-followed by a colon, and then some information (no space between the-colon and the data). They have field names as follows:--- OFXHEADER-- DATA-- VERSION-- SECURITY-- ENCODING-- CHARSET-- COMPRESSION-- OLDFILEUID-- NEWFILEUID--Then there is a blank line.--* OFX tag-This tag is balanced. It encloses all the data. All other tags are-within this tag.--* SIGNONMSGSRSV1-Sign on message? Balanced. Encloses some tags:--** SONRS-Balanced.--*** STATUS-Balanced.--**** CODE-Not balanced. There is a digit on the same line.--**** SEVERITY-Not balanced. Says "INFO" on the same line.--*** DTSERVER-Not balanced. Has some sort of date-time information?--*** LANGUAGE-Not balanced. Says ENG.--*** DTACCTUP-Not balanced. Has some date-time information. Looks like same-information in DTSERVER.--*** FI-Balanced. Financial institution?--**** ORG-Not balanced. Bank of America.--**** FID-Not balanced. Says 5959.--*** INTU.BID-Not balanced. Four-digit number.--*** INTU.USERID-Not balanced. Has your Bank of America user ID.--* BANKMSGSRSV1-Balanced.--** STMTTRNRS-Balanced.--*** TRNUID-Not balanced. "0"--*** STATUS-Balanced.--**** CODE-Not balanced. "0"--**** SEVERITY-Not balanced. "INFO"--*** STMTRS-Balanced.--**** CURDEF-Not balanced. "USD"--**** BANKACCTFROM-Balanced.--***** BANKID-Not Balanced. Digits.--***** ACCTID-Not balanced. Digits.--***** ACCTTYPE-Not balanced. Checking--**** BANKTRANLIST-Balanced.--***** DTSTART-Not balanced. Digits. Some sort of date-time.--***** DTEND-Not balanced. Digits. Some sort of date-time.--***** STMTTRN-Balanced. Where interesting stuff starts.--****** TRNTYPE-Not balanced. Transaction Type? Mostly CREDIT or DEBIT in the data I-have, though it might also be ATM or who knows what else.--****** DTPOSTED-Not balanced. A date-time. I am guessing the format for a date-time is-YYYYMMDDHHMMSS. B of A is leaving the MMSS as zeroes.--****** TRNAMT-Not balanced. Digits with a decimal point. CREDIT transactions have no-minus sign; DEBIT transactions have a leading minus sign.--****** FITID-Not balanced. Financial Institution ID? Digits with some points and-maybe a minus.--****** NAME-Not balanced. The payee name.--****** CHECKNUM-Appears on checks. Not balanced.--**** LEDGERBAL-Balanced.--***** BALAMT-Not balanced. An amount.--***** DTASOF-Not balanced. Date as of? A date-time. Unlike the others, this-date-time has minutes and seconds.
− doc/penny-ofx.ini
@@ -1,70 +0,0 @@-# Sample configuration file for penny-ofx--# Optional default financial institution account. If you do not-# specify a default account, penny-ofx will require that you specify-# one using the -f option every time you run penny-ofx.-default_fit_acct = bigbank--# Example: a credit card from Bigbank. All of the fields shown are-# required. You can configure multiple financial institution accounts.-[bigbank]--# File in which to store database information for this account. You-# must use a different file for each account. Therefore, be careful if-# you cut and paste when you create new accounts in this file, as you-# must change the filename here.-file = /home/massysett/ledger/bigbank.bin--# Postings from this account appear under this account in your ledger-# file(s).-penny_acct = Liabilities:Current:Bigbank--# When penny-fit finds a financial institution posting and it-# does not have a matching posting in your ledger, it must create-# a new transaction with two postings. One posting will be in the-# pennyAcct specified above and the other posting will be in this-# account.-default_acct = Expenses:Unclassified--# All postings will be in this currency-currency = $--# The next two options control digit grouping when penny-ofx reprints-# your ledger. groupLeft and groupRight control whether digits are-# grouped to the left and to the right of the radix point,-# respectively. Available choices are:-#-# none - do not group any digits-#-# large - group only if the number to be grouped is greater than 9,999-# (if grouping to the left of the decimal point) or if there are more-# than 4 decimal places (if grouping to the right of the decimal-# point.)-#-# all - group whenever there are at least four digits to be grouped.-group_left = all-group_right = none--# Postings from your financial institution are specified in terms of-# increases or decreases. Postings in your ledger are specified in-# terms of debits or credits. The translator specifies how to convert-# a posting from your financial institution to a posting in the-# pennyAcct in your ledger.-increase_is = Credit--# When penny-fit creates new postings it must put the commodity-# either to the left of the quantity or to the right of the-# quantity.-commodity_on = Left--# When penny-fit creates new postings it must decide whether to-# put a space between the commodity and the quantity.-space_between = False--# Give some helpful information here about where to find the file on-# your bank website. You can use multiline strings, as shown, by-# indenting subsequent lines.-more_info = Statements from bigbank.-  Bigbank makes its statements available by clicking on-  "Account Info", then logging in, then clicking on-  "Statements".
install-docs view
@@ -20,7 +20,7 @@     done      install -m755 -d $DOCDIR-    for filename in doc/*.{org,dot}; do+    for filename in doc/*.{org,dot,hs}; do         install -v -m644 $filename $DOCDIR     done 
man/penny-fit.7 view
@@ -188,6 +188,7 @@ decrease:IncreaseIsCredit:credit:No .TE .+.P If .B penny-fit finds a match for a financial institution posting in this way, then it
man/penny-reconcile.1 view
@@ -14,7 +14,10 @@ .IR C . Changes those flags to the letter .I R-and prints the resulting ledger to standard output. This is useful+and prints the resulting ledger to standard output.+.+.P+This is useful when reconciling a financial institution account: you may first mark postings in your ledger that match a posting on your bank statement with a@@ -32,6 +35,7 @@ .B penny-reconcile will automatically mark all the posts reconciled. .+.P If no .IR FILE ", or " FILE " is " - , read standard input.@@ -72,6 +76,7 @@ This would happen only rarely though, so you might be just fine using a query-replace function in your text editor. .+.P Also, .B penny-reconcile will tidy up your ledger file--that is, it might rearrange or delete
penny-bin.cabal view
@@ -1,5 +1,5 @@ Name: penny-bin-Version: 0.14.0.0+Version: 0.16.0.2 Cabal-version: >=1.8 Build-Type: Simple License: BSD3@@ -173,7 +173,6 @@   , README   , doc/*.org   , doc/*.dot-  , doc/*.ini   , doc/*.hs   , examples/*.pny   , man/*.1@@ -187,7 +186,7 @@ Executable penny   Build-depends:     base ==4.*,-    penny-lib ==0.14.*+    penny-lib ==0.16.*    Main-is: penny-main.hs   Other-modules: Paths_penny_bin@@ -201,7 +200,7 @@ Executable penny-selloff   Build-depends:     base == 4.*,-    penny-lib ==0.14.*,+    penny-lib ==0.16.*,     explicit-exception ==0.1.*,     containers ==0.5.*,     semigroups ==0.9.*,@@ -221,7 +220,7 @@ Executable penny-diff   Build-depends:     base ==4.*,-    penny-lib ==0.14.*,+    penny-lib ==0.16.*,     text ==0.11.*,     multiarg ==0.16.*,     explicit-exception == 0.1.*@@ -239,7 +238,7 @@   Build-depends:       base ==4.*     , multiarg ==0.16.*-    , penny-lib ==0.14.*+    , penny-lib ==0.16.*     , pretty-show ==1.5.*     , text ==0.11.* @@ -252,7 +251,7 @@ Executable penny-reconcile   Build-depends:       base ==4.*-    , penny-lib ==0.14.*+    , penny-lib ==0.16.*     , text ==0.11.*     , multiarg ==0.16.*     , explicit-exception ==0.1.*
penny-main.hs view
@@ -238,16 +238,16 @@ lightEvenTextSpec = id  lightOddTextSpec :: Chunk -> Chunk-lightOddTextSpec = id .+. color8_b_default .+. color256_b_255+lightOddTextSpec = (<> (c8_b_default <> c256_b_255))  lightDebit :: (Chunk -> Chunk) -> Chunk -> Chunk-lightDebit f = f .+. color8_f_magenta .+. color256_f_52+lightDebit f c = f c <> c8_f_magenta <> c256_f_52  lightCredit :: (Chunk -> Chunk) -> Chunk -> Chunk-lightCredit f = f .+. color8_f_cyan .+. color256_f_21+lightCredit f c = f c <> c8_f_cyan <> c256_f_21  lightZero :: (Chunk -> Chunk) -> Chunk -> Chunk-lightZero f = f .+. color8_f_black .+. color256_f_0+lightZero f c = f c <> c8_f_black <> c256_f_0  -- | The dark color scheme. You can change various values below to -- affect the color scheme.@@ -271,16 +271,16 @@ darkEvenTextSpec = id  darkOddTextSpec :: Chunk -> Chunk-darkOddTextSpec = id .+. color8_b_default .+. color256_b_235+darkOddTextSpec = (<> (c8_b_default <> c256_b_235))  darkDebit :: (Chunk -> Chunk) -> Chunk -> Chunk-darkDebit f = f .+. color8_f_magenta .+. color256_f_208+darkDebit f c = f c <> c8_f_magenta <> c256_f_208  darkCredit :: (Chunk -> Chunk) -> Chunk -> Chunk-darkCredit f = f .+. color8_f_cyan .+. color256_f_45+darkCredit f c = f c <> c8_f_cyan <> c256_f_45  darkZero :: (Chunk -> Chunk) -> Chunk -> Chunk-darkZero f = f .+. color8_f_white .+. color256_f_15+darkZero f c = f c <> c8_f_white <> c256_f_15   -- | Plain scheme has no colors at all.