# Copyright (c) 2007 bivio Software Artisans, Inc. All Rights Reserved. # # Visit http://www.bivio.biz for more info. # # This library is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; If not, you may get a copy from: # http://www.opensource.org/licenses/lgpl-license.html # # $Id: IIF.bunit,v 1.1 2011/10/07 23:37:33 nagler Exp $ Unit(); sub _fix_newlines { my($str) = @_; $str =~ s/\n/\r\n/g; return $str; } my($d) = '08/01/2007'; my($now) = Type_DateTime()->now; my($dt) = Type_DateTime()->to_local_string($now); $dt =~ s/\s.*$//; [ [[ [qw(TRNS TRNSID TRNSTYPE DATE ACCNT NAME AMOUNT MEMO DOCNUM)], [qw(SPL SPLID TRNSTYPE DATE ACCNT NAME AMOUNT MEMO DOCNUM)], [qw(ENDTRNS)], ]] => [ to_string => [ [] => '', ], add_record => [ [TRNS => { TRNSTYPE => 'PAYMENT', DATE => Type_Date($d), ACCNT => 'Funds for Deposit', NAME => "Moeller, Ole", AMOUNT => '95.00', DOCNUM => '101', }] => [], [SPL => { SPLID => '9600015', TRNSTYPE => 'PAYMENT', DATE => $now, ACCNT => 'Accounts Receivable', NAME => '"Moeller, Ole"', AMOUNT => '-95.00', }] => [], ['ENDTRNS'] => [], ], to_string => [ [] => _fix_newlines(<<"EOF"), !TRNS TRNSID TRNSTYPE DATE ACCNT NAME AMOUNT MEMO DOCNUM !SPL SPLID TRNSTYPE DATE ACCNT NAME AMOUNT MEMO DOCNUM !ENDTRNS TRNS PAYMENT $d Funds for Deposit Moeller, Ole 95 101 SPL 9600015 PAYMENT $dt Accounts Receivable Moeller, Ole -95 ENDTRNS EOF ], add_record => [ [FOO => {}] => Bivio::DieCode->DIE, [TRNS => { ACCT => 'Funds for Deposit', }] => Bivio::DieCode->DIE, [TRNS => { NAME => "Ole\tMoeller", }] => Bivio::DieCode->DIE, [TRNS => { AMOUNT => '', }] => Bivio::DieCode->DIE, [TRNS => { AMOUNT => 'x', }] => Bivio::DieCode->DIE, [TRNS => { AMOUNT => undef, }] => [], [TRNS => { SERVICEDATE => '12/31/2006', }] => Bivio::DieCode->DIE, ], ], ];