#!/usr/bin/perl use warnings; use strict; sub toEUR { my $n = shift; $n =~ s/\,/./; if ($n =~ /\,/) { print "\nError: Too many commas in '$n'.\n\n"; exit 1; } $n = sprintf("%.02f", $n); $n =~ s/\./,/; if ($n =~ /\./) { print "\nError: Too many points in '$n'.\n\n"; exit 2; } return $n; } sub print_formatted { # @fields: $quantity, $id, $name, $price, $addtlinfo: my @fields = @_; $fields[3] = toEUR($fields[3]); my @formats = ([5, "r"], [7, "r"], [40, "l"], [6, "r"], [20, "r"]); my $separator = " "; my $s = ""; my $i; my @v; my $spaces; for $i (0 .. $#formats) { @v = @{$formats[$i]}; if (length($fields[$i]) > $v[0]) { print "\nError: Length of '$fields[$i]' shouldn't be bigger than $v[0].\n\n"; exit 3; } $spaces = " " x ($v[0] - length($fields[$i])); if ($v[1] eq "r") { $s .= $spaces; $s .= $fields[$i]; } else { $s .= $fields[$i]; $s .= $spaces; } if ($i == 3) { $s .= " Euro "; } else { $s .= $separator; } } print "$s\n"; } my $youremail = "you\@email.de"; my $b_email = "me\@email.de"; my $day = 3; my @months = qw(Januar Februar März April Mai Juni Juli August September Oktober November Dezember); my $month = 9; my $year = 2021; my $hour = 14; my $min = 10; my $sec = 50; my $b_first = "Max"; my $b_last = "Mustermann"; my $b_addr = ""; my $b_addr2 = "Mustergasse 15"; my $b_zip = 54321; my $b_city = "München"; my $b_phone = "01234/5678"; my $b_fax = "01234/56710"; my $QUANTITY_1 = 10; my $QUANTITY_2 = 10; my $QUANTITY_3 = 10; my $QUANTITY_4 = 10; my $QUANTITY_5 = 10; my $QUANTITY_6 = 10; my $ID_1 = 12345; my $ID_2 = 12345; my $ID_3 = 12345; my $ID_4 = 12345; my $ID_5 = 12345; my $ID_6 = 12345; my $NAME_1 = "Mustermann"; my $NAME_2 = "Mustermann"; my $NAME_3 = "Mustermann"; my $NAME_4 = "Mustermann"; my $NAME_5 = "Mustermann"; my $NAME_6 = "Mustermann"; my $PRICE_1 = 5; my $PRICE_2 = 250.75; my $PRICE_3 = 3; my $PRICE_4 = 125; my $PRICE_5 = 25; my $PRICE_6 = 0.25; my $ADDTLINFO_1 = "Angebot"; my $ADDTLINFO_2 = "Angebot"; my $ADDTLINFO_3 = "Angebot"; my $ADDTLINFO_4 = "Angebot"; my $ADDTLINFO_5 = "Angebot"; my $ADDTLINFO_6 = "Angebot"; print "To: $youremail\n"; print "From: $b_email\n"; print "Subject: Online Bestellung\n"; print "\n\n"; print "Online Bestellung.\n"; print "\n"; print "Bestelldatum: $day. $months[$month] $year $hour:$min:$sec \n"; print " \n"; print "Rechnungsanschrift: \n"; print "-------- \n"; print " $b_first $b_last \n"; print " $b_addr \n"; print " $b_addr2 \n"; print " $b_zip $b_city \n"; print " $b_phone \n"; print " $b_fax \n"; print " $b_email \n"; print " \n"; print " \n"; print "Menge Produkt Name" . " " x 36 . " Preis(Euro) " . " " x 16 . "Info\n"; print "========================================================================================\n"; print_formatted($QUANTITY_1, $ID_1, $NAME_1, $PRICE_1, $ADDTLINFO_1); if( $NAME_2 ) { print_formatted($QUANTITY_2, $ID_2, $NAME_2, $PRICE_2, $ADDTLINFO_2); } if( $NAME_3 ) { print_formatted($QUANTITY_3, $ID_3, $NAME_3, $PRICE_3, $ADDTLINFO_3); } if( $NAME_4 ) { print_formatted($QUANTITY_4, $ID_4, $NAME_4, $PRICE_4, $ADDTLINFO_4); } if( $NAME_5 ) { print_formatted($QUANTITY_5, $ID_5, $NAME_5, $PRICE_5, $ADDTLINFO_5); } if( $NAME_6 ) { print_formatted($QUANTITY_6, $ID_6, $NAME_6, $PRICE_6, $ADDTLINFO_6); }