From 57454875143747f5425969ceda59fc900eef62dd Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 9 Nov 2006 03:25:47 +0000 Subject: [PATCH] add latexize invoice and invoice_calc --- invoice_calc | 23 +++++++++++++++++++++++ latexize_invoice | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100755 invoice_calc create mode 100755 latexize_invoice diff --git a/invoice_calc b/invoice_calc new file mode 100755 index 0000000..21e1a18 --- /dev/null +++ b/invoice_calc @@ -0,0 +1,23 @@ +#!/usr/bin/perl + +use Date::Manip; + +$totaldelta=undef; + +while (<>) { + chomp; + if (/^\* /) { + my $string = $_; + my ($d1,$d2) = map {s/^\*\s*//; + ParseDate($_) + } split /\s*-\s*/; + my $delta = DateCalc($d1,$d2); + $totaldelta = defined($totaldelta)?DateCalc($delta,$totaldelta):$delta; + print qq($string [).Delta_Format($delta,2,q(%ht)).qq(] [).Delta_Format($totaldelta,2,q(%ht)).qq(]\n); + } + else { + print $_,qq(\n); + } +} + +print "\nTotal: ".Delta_Format($totaldelta,2,q(%ht)).qq(\n); diff --git a/latexize_invoice b/latexize_invoice new file mode 100755 index 0000000..1418b46 --- /dev/null +++ b/latexize_invoice @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +#* Saturday, July 22, 2006 19:41:14 PDT - Saturday, July 22, 2006 20:13:23 PDT [0.54] [0.54] +# - Set up dns slave/master between alpha and beta + +# \Fee{\begin{itemize*} +# \item setting up rsyncd.conf to sync home directories +# \item running a test rsync +# \item add back missing accounts +# \end{itemize*} +# }{50.00}{0.94} + + +my $time = undef; +my @events; +while (<>){ + if (/^\s*\*.+\[([^\]]+)\]\s*\[[^\]]+\]/) { + if (defined $time) { + print format_events($time,@events); + } + @events = (); + $time = $1; + } + if (/^\s+\-\s*(.+)/) { + my $event = $1; + chomp $event; + push @events, $event; + } +} +if (defined $time) { + print format_events($time,@events); +} + +sub format_events{ + my ($time,@events) = @_; + my $output = ' \Fee{\begin{itemize*}'."\n"; + $output .= join('',map {" \\item $_\n"} @events); + $output .= ' \end{itemize*}}{50.00}{'.$time.'}'."\n"; + return $output; +} -- 2.39.5