Query: finance::qif
OS: debian
Section: 3pm
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
Finance::QIF(3pm) User Contributed Perl Documentation Finance::QIF(3pm)NAMEFinance::QIF - Parse and create Quicken Interchange Format filesSYNOPSISuse Finance::QIF; my $qif = Finance::QIF->new( file => "test.qif" ); while ( my $record = $qif->next ) { print( "Header: ", $record->{header}, " " ); foreach my $key ( keys %{$record} ) { next if ( $key eq "header" || $key eq "splits" || $key eq "budget" || $key eq "prices" ); print( " ", $key, ": ", $record->{$key}, " " ); } if ( exists( $record->{splits} ) ) { foreach my $split ( @{ $record->{splits} } ) { foreach my $key ( keys %{$split} ) { print( " Split: ", $key, ": ", $split->{$key}, " " ); } } } if ( exists( $record->{budget} ) ) { print(" Budget: "); foreach my $amount ( @{ $record->{budget} } ) { print( " ", $amount ); } print(" "); } if ( exists( $record->{prices} ) ) { print(" Date Close Max Min Volume "); $format = " %8s %7.2f %7.2f %7.2f %-8d "; foreach my $price ( @{ $record->{prices} } ) { printf( $format, $price->{"date"}, $price->{"close"}, $price->{"max"}, $price->{"min"}, $price->{"volume"} ); } } }DESCRIPTIONFinance::QIF is a module for working with QIF (Quicken Interchange Format) files in Perl. This module reads QIF data records from a file passing each successive record to the caller for processing. This module also has the capability of writing QIF records to a file. The QIF file format typically consists of a header containing a record or transaction type, followed by associated data records. Within a file there may be multiple headers. Headers are usually followed by data records, however data is not required to always follow a header. A hash reference is returned for each record read from a file. The hash will have a "header" value which contains the header type that was read along with all supported values found for that record. If a value is not specified in the data file, the value will not exist in this hash. No processing or validation is done on values found in files or data structures to try and convert them into appropriate types and formats. It is expected that users of this module or extensions to this module will do any additional processing or validation as required. RECORD TYPES & VALUES The following record types are currently supported by this module: Type:Bank, Type:Cash, Type:CCard, Type:Oth A, Type:Oth L These are non investment ledger transactions. All of these record types support the following values. date Date of transaction. transaction Dollar amount of transaction. total Dollar amount of transaction. This is generally the same as transaction but in some cases can be higher. (Introduced in Quicken 2005 for windows) status Reconciliation status of transaction. number Check number of transaction. payee Who the transaction was made to. memo Additional text describing the transaction. address Address of payee. category Category the transaction is assigned to. splits If the transaction contains splits this will be defined and consist of an array of hash references. With each split potentially having the following values. category Category the split is assigned to. memo Additional text describing the split. amount Dollar amount of split. Type:Invst This is for Investment ledger transactions. The following values are supported for this record type. date Date of transaction. action Type of transaction like buy, sell, ... security Security name of transaction. price Price of security at time of transaction. quantity Number of shares purchased. transaction Cost of shares in transaction. status Reconciliation status of transaction. text Text for non security specific transaction. memo Additional text describing transaction. commission Commission fees related to transaction. account Account related to security specific transaction. amount Dollar amount of transaction. total Dollar amount of transaction. This is generally the same as amount but in some cases can be higher. (Introduced in Quicken 2005 for windows) Account This is a list of accounts. In cases where it is used in a file by first providing one account record followed by a investment or non- investment record type and its transactions, it means that that set of transactions is related to the specified account. In other cases it can just be a sequence of Account records. Each account record supports the following values. name Account name. description Account description. limit Account limit usually for credit card accounts that have some upper limit over credit. tax Defined if the account is tax related. note Additional information about the account. type Type of account. balance Current balance of account. Type:Cat This is a list of categories. The following values are supported for category records. name Name of category. description Description of category. budget An array of 12 values Jan-Dec to represent the budget amount for each month. expense Usually exists if the category is an expense account however this is often a default assumed value and doesn't show up in files. income Exists if the category is an income account. tax Exists if this category is tax related. schedule If this category is tax related this specifies what tax schedule it is related if defined. Type:Class This is a list of classes. The following values are supported for class records. name Name of class. description Description of class. Type:Memorized This is a list of memorized transactions. The following values are supported for memorized transaction records. type Type of memorized transaction "C" for check, "D" for deposit, "P" for payment, "I" for investment, and "E" for electronic payee. transaction Dollar amount of transaction. total Dollar amount of transaction. This is generally the same as amount but in some cases can be higher. (Introduced in Quicken 2005 for windows) status Reconciliation status of transaction. payee Who the transaction was made to. memo Additional text describing the transaction. address Address of payee. category Category the transaction is assigned to. action Type of investment transaction like buty, sell, ... (Inroduced in Quicken 2006 for windows) security Security name of transaction. (Inroduced in Quicken 2006 for windows) price Price of security. (Inroduced in Quicken 2006 for windows) quantity Quantity of security. (Inroduced in Quicken 2006 for windows) amount Dollar amount of transaction. (Introduced in Quicken 2006 for windows) splits If the transaction contains splits this will be defined and consist of an array of hashes. With each split potentially having the following values. category Category the split is assigned to. memo Additional text describing the split. amount Dollar amount of split. first First payment date. years Total years for loan. made Number of payments already made. periods Number of periods per year. interest Interest rate of loan. balance Current loan balance. loan Original loan amount. Type:Security This is a list of securities. The following values are supported for security records. security Security name. symbol Security symbol. type Security type. goal Security goal. Type:Budget This is a list of budget values for categories. The following values are supported for budget records. name Category name of budgeted item. description Category Description of budgeted item. expense Usually exists if the category is an expense account however this is often a default assumed value and doesn't show up in files. income Exists if the category is an income account. tax Exists if this category is tax related. schedule If this category is tax related this specifies what tax schedule it is related if defined. budget An array of 12 values Jan-Dec to represent the budget amount for each month. Type:Payee This is a list online payee accounts. The following values are supported for online payee account records. name Name of payees. address Address of payee. city City of payee. state State of payee zip Zipcode of payee. country Country of payee. phone Phone number of payee. account Account number for payee transaction. Type:Prices This is a list of prices for a security. The following values are supported for security prices records. symbol Security Symbol. prices An array of hashes. With each hash having the following values. date Date of security values. close Close value of security for the date. max Max value of security for the date. min Min value of security for the date. volume Number of shares of security exchanged for the date. Option:AllXfr, Option:AutoSwitch, Clear:AutoSwitch These record types aren't related to transactions but instead provided ways to control how Quicken processes the QIF file. They have no impact on how this software operates and are ignored when found. Note: If this software finds unsupported record types or values in a data file a warning will be generated containing information on what unexpected value was found.METHODSnew() Creates a new instance of Finance::QIF. Supports the following initializing values. my $qif = Finance::QIF->new( file => "myfile", debug => 1 ); If the file is specified it will be opened on new. file Specifies file to use for processing. See "file()" for details. my $in = Finance::QIF->new( file => "myfile" ); OR my $in = Finance::QIF->new( file => [ "myfile", "<:crlf" ] ); For output files, be sure to open the file in write mode. For example: my $out = Finance::QIF->new( file => ">myfile" ); record_separator Can be used to redefine the QIF record separator. Default is $/. my $in = Finance::QIF->new( record_separator => "