home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / X11R6 / lib / X11 / cbb / contrib / yearend.pl < prev   
Perl Script  |  1998-10-07  |  4KB  |  117 lines

  1. #!/usr/bin/perl
  2. #  yearend.pl - export all uncleared transactions to "uncleared.cbb"
  3. #               Then DELETE these transactions from the original file!
  4. #
  5. #  warning:  This program is rather slow ... but hey, you only have
  6. #            to run it occasionally and it gives the impression that
  7. #            it is really working hard. :)
  8. #
  9. #  Written by Curtis Olson.  Started February 10, 1995.
  10. #
  11. #  Copyright (C) 1995, 1996  Curtis L. Olson  - curt@sledge.mn.org
  12. #
  13. #  This program is free software; you can redistribute it and/or modify
  14. #  it under the terms of the GNU General Public License as published by
  15. #  the Free Software Foundation; either version 2 of the License, or
  16. #  (at your option) any later version.
  17. #
  18. #  This program is distributed in the hope that it will be useful,
  19. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21. #  GNU General Public License for more details.
  22. #
  23. #  You should have received a copy of the GNU General Public License
  24. #  along with this program; if not, write to the Free Software
  25. #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  26.  
  27. # $Id: yearend.pl,v 2.5 1998/08/14 14:28:46 curt Exp $
  28. # (Log is kept at end of this file)
  29.  
  30.  
  31. package CBB;
  32.  
  33. use strict;    # don't take no guff
  34.  
  35.  
  36. my($key, $date, $check, $desc, $debit, $credit, $cat, $com, $cleared, $total);
  37. my($account, $cbb_incl_dir, $lastkey, $outfile, $response, $result);
  38.  
  39. # specify the installed location of the necessary pieces.
  40. $CBB::cbb_incl_dir = "/usr/X11R6/lib/X11/cbb";
  41. unshift(@INC, $CBB::cbb_incl_dir);
  42.  
  43. require "categories.pl";
  44. require "engine.pl";
  45. require "memorized.pl";
  46.  
  47. ($#ARGV >= 0) || 
  48.     die "Usage: yearend.pl account output-file";
  49.  
  50. print "This program will MOVE all uncleared transactions from the\n";
  51. print "specified account to the specified export file.  The uncleared\n";
  52. print "transactions WILL BE DELETED from the specified account.\n";
  53. print "You are strongly encouraged to make BACKUPS of all your data\n";
  54. print "before attempting to do this.\n\n";
  55. print "Do you wish to continue?  (yes/no) ";
  56.  
  57. $response = <STDIN>;
  58.  
  59. if ( $response =~ m/yes/i ) {
  60.     print "Ok, continuing:\n\n";
  61. } else {
  62.     die "Bailing out ... nothing was done to your data.\n";
  63. }
  64.  
  65. $account = shift(@ARGV);
  66. (&load_trans($account) eq "ok") || die "Cannot open account:  $account";
  67.  
  68. $outfile = shift(@ARGV);
  69. open(OUTPUT, ">$outfile");
  70.  
  71. $result = &first_trans();
  72. while ( $result ne "none" ) {
  73.     ($key, $date, $check, $desc, $debit, $credit, $cat, $com, $cleared,
  74.      $total) = split(/\t/, $result);
  75.  
  76.     if ( $cleared ne "x" ) {
  77.     print (OUTPUT "$CBB::TRANS{$key}\n");
  78.     print ".";
  79.     &delete_trans($key);
  80.     if ( defined($lastkey) ) {
  81.         &find_trans($lastkey);
  82.     }
  83.     } else {
  84.     $lastkey = $key;
  85.     }
  86.  
  87.     $result = &next_trans();
  88. }
  89.  
  90. close(OUTPUT);
  91.  
  92. (&save_trans("$account") eq "ok") || die "Cannot save account:  $account";
  93.  
  94. print "\n";
  95.  
  96. # ----------------------------------------------------------------------------
  97. # $Log: yearend.pl,v $
  98. # Revision 2.5  1998/08/14 14:28:46  curt
  99. # Added desc-pie graph.
  100. # Added option to eliminate splash screen.
  101. # Other misc. tweaks and bug fixes.
  102. #
  103. # Revision 2.4  1997/02/19 18:09:10  curt
  104. # Fixed some residual oversites from switching to "use strict".
  105. #
  106. # Revision 2.3  1997/01/18 17:26:40  curt
  107. # Added "use strict" pragma to enforce good scoping habits.
  108. #
  109. # Revision 2.2  1996/07/13 02:58:25  curt
  110. # Misc. changes.
  111. #
  112. # Revision 2.1  1996/02/27  05:36:06  curt
  113. # Just stumbling around a bit with cvs ... :-(
  114. #
  115. # Revision 2.0  1996/02/27  04:43:15  curt
  116. # Initial 2.0 revision.  (See "Log" files for old history.)
  117.