Thread Variable wird falsch dargestellt: (war: verzweifung - bitte um Hilfe...) (16 answers)
Opened by kai123 at 2005-03-29 17:07

renee
 2005-03-30 12:04
#4709 #4709
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe mal etwas angefangen, das Skript neu zu schreiben... Das kann Dir ja als Anhaltspunkt dienen... Du musst noch die restlichen Variablen im Template als TMPL_VARiablen umschreiben...

Skript:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!C:\apachefriends\xampp\perl\bin\perl.exe

use strict;
use warnings;
use CGI;
use lib qw(/homes/frasbio11/reneeb/cpan/);
use HTML::Template;

my $cgi       = CGI->new();
my %eingabe   = $cgi->Vars();
my $tmpl_file = 'rechnung_template.tmpl';
my $nr_file   = 'rechnungsnr.txt';

my $template = HTML::Template->new(filename => $tmpl_file);

print $cgi->header();

my ($heute,$rech_string) = get_date();

#Rechnungsnr. aus Datei holen und Rechnungsnummer hochsetzen
open(INFO, "<$nr_file") or die $!;
my $rechnungsnr = <INFO>;
close (INFO);

my $rechnung = $rech_string . $rechnungsnr;
$rechnungsnr++;

open(WRITE, ">$nr_file") or die $!;
print WRITE $rechnungsnr;
close (WRITE);


my @array;
foreach $product (split("##",$eingabe{products})){ # Ich würde andere Trenner benutzen...
 ($bez, undef, $preis, $menge, $wert)= split ("; ", $product);
 $menge =~ s/(.) Stk./\1/;
 $wert =~ s/ (.*,.*) EUR/\1/;
 $einheit = "Fl/Stk";
 #warenwert für mwst feststellen: perl braucht einen . als fließkommaoperator, kein komma
 $wert =~ s/,/\./;
 $warenwert += $wert;
 $wert =~ s/\./\,/;
 push(@array,{BEZEICHNUNG => $bez, WERT => $wert, MENGE => $menge, PREIS => $preis, EINHEIT => $einheit});
}

$template->param(SEX         => $eingabe{sex},
                NAME        => $eingabe{name},
                ADDRESS     => $eingabe{address},
                ZIP         => $eingabe{zip},
                TOWN        => $eingabe{town},
                RECHNUNGSNR => $rechnung,
                DATUM       => $heute,
                POSTEN    => \@array,);

print $template->output();


##
# Subroutines
##

sub get_date{
my $tm = shift || time;
my @lt = localtime($tm);
my $datum = sprintf "%02d.%02d.%04d", $lt[3], $lt[4] + 1, $lt[5] + 1900;
my $rech  = (sprintf "%02d", $lt[4]+1).(substr($lt[5],1));
return ($datum,$rech);
}# end of subroutine


Template:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<html>
<head>
 <style type="text/css">
 .headfont{font-size: 2; font-familiy: Arial; font-weight: bold}
 </style>
</head>
<body>
<table border="0" width="650" cellspacing="0" cellpadding="0">
 <tr>
   <td width="650" height="200">
     <p align="center">
   </td>
 </tr>
 <tr>
   <td width="650" height="21" class="headfont"><!-- TMPL_VAR NAME=SEX -->&nbsp;</td>
 </tr>
 <tr>
   <td width="650" height="21" class="headfont"><!-- TMPL_VAR NAME=NAME -->&nbsp;</td>
 </tr>
 <tr>
   <td width="650" height="21" class="headfont"><!-- TMPL_VAR NAME=ADDRESS -->&nbsp;</td>
 </tr>
 <tr>
   <td width="650" height="21" class="headfont"><!-- TMPL_VAR NAME=ZIP --> <!-- TMPL_VAR NAME=TOWN --></td>
 </tr>
 <tr>
   <td width="650" height="21" class="headfont"><!-- TMPL_VAR NAME=STATE -->&nbsp;</td>
 </tr>
<tr>
   <td width="650" height="119">
     <table border="0" cellpadding="0" cellspacing="0">
       <tr>
         <td width="350"><i><font face="Arial" size="2">Lieferanschrift:</font></i></td>
         <td rowspan="6" valign="top" height="118">
           <table border="1" cellpadding="1" cellspacing="0" width="300" style="border-collapse: collapse; table-layout: fixed" bordercolor="#FFFFFF">
             <tr>
               <td width="300" colspan="3"><font face="Arial" size="2"><b>RECHNUNG</b></font></td>
             </tr>
             <tr>
               <td width="33%"><font face="Arial" size="1"><b>Rechnungsnr.</b></font></td>
               <td width="33%"><font face="Arial" size="1"><b>Datum</b></font></td>
               <td width="33%">
                 <p align="left"><font face="Arial" size="1"><b>Zahlungsbedingungen</b></font></p>
               </td>
             </tr>
             <tr>
               <td width="33%" bgcolor="#C0C0C0"><font size="2" face="Arial"><!-- TMPL_VAR NAME=RECHNUNGSNR -->&nbsp;</font></td>
               <td width="33%" bgcolor="#C0C0C0"><font face="Arial" size="2"><!-- TMPL_VAR NAME=DATUM -->&nbsp;</font></td>
               <td width="33%" bgcolor="#C0C0C0"><p align="right"><font face="Arial" size="2">$eingabe{'payment'}&nbsp;</font></p>
               </td>
             </tr>
             <tr>
               <td width="33%"><font face="Arial" size="1"><b><br>
                 Versandart</b></font></td>
               <td width="33%"><font face="Arial" size="1"><b><br>
                 Seite</b></font></td>
               <td width="33%">
                 <p align="left"><font face="Arial" size="1"><b><br>
                 Lieferdatum</b></font></p>
               </td>
             </tr>
             <tr>
               <td width="33%" bgcolor="#C0C0C0"><font face="Arial" size="2">GLS-Versand</font></td>
               <td width="33%" bgcolor="#C0C0C0">
                 <p align="center"><font face="Arial" size="2">1</font></p>
               </td>
               <td width="33%" bgcolor="#C0C0C0"><font face="Arial" size="2">$eingabe{'lieferdatum'}&nbsp;</font></td>
             </tr>
           </table>
         </td>
       </tr>
       <tr>
         <td width="350"><font face="Arial" size="2">$eingabe{'sex1'}&nbsp;</font></td>
       </tr>
       <tr>
         <td width="350">
           <p align="left"><font face="Arial" size="2">$eingabe{'name1'}&nbsp;</font></td>
       </tr>
       <tr>
         <td width="350"><font face="Arial" size="2">$eingabe{'address1'}&nbsp;</font></td>
       </tr>
       <tr>
         <td width="350"><font face="Arial" size="2">$eingabe{'zip1'} $eingabe{'town1'}&nbsp;</font></td>
       </tr>
     </table>
   </td>
 </tr>
</table>

 &nbsp;
<table border="1" width="650" cellspacing="0" bordercolor="#C0C0C0" cellpadding="2">
 <tr>
   <td width="300" bordercolor="#C0C0C0" height="30" bgcolor="#C0C0C0" ><font face="Arial" size="1"><b>Artikelbezeichnung</b></font></td>
   <td width="50" align="center" bordercolor="#C0C0C0" height="30" bgcolor="#C0C0C0" >
     <p align="center"><font face="Arial" size="1"><b>Menge</b></font></p>
   </td>
   <td width="50" bordercolor="#C0C0C0" height="30" bgcolor="#C0C0C0" >
     <p align="center"><font face="Arial" size="1"><b>Einheit</b></font></td>
   <td width="94" bordercolor="#C0C0C0" height="30" bgcolor="#C0C0C0" >
     <p align="center">
     <font face="Arial" size="1"><b>Preis (EUR)</b></font></p>
   </td>
   <td width="100" bordercolor="#C0C0C0" height="30" bgcolor="#C0C0C0" >
     <p align="center">
     <font face="Arial" size="1"><b>Warenwert (EUR)</b></font></p>
   </td>
 </tr>
 <!-- TMPL_LOOP NAME=POSTEN -->
 <tr>
   <td width="300" bordercolor="#C0C0C0" valign="top" ><font size="1" face="Arial"><!-- TMPL_VAR NAME=BEZEICHNUNG -->&nbsp;</font></td>
   <td width="50" bordercolor="#C0C0C0" valign="top" ><font face="Arial" size="1"><!-- TMPL_VAR NAME=MENGE -->&nbsp;</font></td>
   <td width="50" bordercolor="#C0C0C0" valign="top" ><font face="Arial" size="1"><!-- TMPL_VAR NAME=EINHEIT -->&nbsp;</font></td>
   <td width="94" bordercolor="#C0C0C0" valign="top" ><font size="1" face="Arial"><!-- TMPL_VAR NAME=PREIS -->&nbsp;</font></td>
   <td width="100" bordercolor="#C0C0C0" valign="top" ><font size="1" face="Arial"><!-- TMPL_VAR NAME=WERT -->&nbsp;</font></td>
 </tr>
 <!-- /TMPL_LOOP -->
 </table>

 &nbsp;

 <table border="1" width="652" cellspacing="0" bordercolor="#C0C0C0" cellpadding="2">
 <tr>
   <td width="294" bordercolor="#C0C0C0" bgcolor="#FFFFFF" ><font size="1" face="Arial">Versandkostenpauschale</font></td>
   <td width="105" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF" ><font size="1" face="Arial">&nbsp;</font></td>
   <td width="197" bordercolor="#C0C0C0" bgcolor="#FFFFFF" >
     <p align="right"><font size="1" face="Arial"><!-- TMPL_VAR NAME=VERSAND -->&nbsp;</font></p>
   </td>
 </tr>
 <tr>
   <td width="294" bordercolor="#C0C0C0" bgcolor="#FFFFFF" ><font size="1" face="Arial">Nachnahmekosten</font></td>
   <td width="105" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF" ><font size="1" face="Arial">&nbsp;</font></td>
   <td width="197" bordercolor="#C0C0C0" bgcolor="#FFFFFF" >
     <p align="right"><font size="1" face="Arial"><!-- TMPL_VAR NAME=NACHNAHMEKOSTEN -->&nbsp;</font></p>
   </td>
 </tr>
 <tr>
   <td width="294" bordercolor="#C0C0C0" bgcolor="#FFFFFF" ><font size="1" face="Arial">Geschenkservice</font></td>
   <td width="105" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF" ><font size="1" face="Arial">kostenlos</font></td>
   <td width="197" bordercolor="#C0C0C0" bgcolor="#FFFFFF" >
     <p align="right"><font face="Arial" size="1">kostenlos</font></td>
 </tr>
</table>
&nbsp;
<table border="0" width="650" cellspacing="0" bgcolor="#C0C0C0" cellpadding="2">
 <tr>
   <td width="550" valign="top">
     <p align="right"><font size="1" face="Arial"><b>enthaltene Mehrwertsteuer (16%)</b></font></td>
   <td width="100">
     <p align="right"><b><font face="Arial" size="1"><!-- TMPL_VAR NAME=MWST -->&nbsp;EUR</font></b></td>
 </tr>
 <tr>
   <td width="550">
     <p align="right">&nbsp;<font size="1" face="Arial"><b>Endbetrag</b></font></td>
     <td width="100">
     <p align="right"><b><font size="1"><font face="Arial"><!-- TMPL_VAR NAME=VALUE -->&nbsp;EUR</font></b>
     </font>
     </td>
 </tr>
</table>
</body>
</html>


Da kann/sollte man auch mehr mit CSS arbeiten!

Wie gesagt, ist noch kein fertiges Skript, sondern ein Anfang!

@Strat: kann ja sein, dass die Produkte per Hidden-Field als ein String übergeben werden...\n\n

<!--EDIT|renee|1112170037-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Variable wird falsch dargestellt: (war: verzweifung - bitte um Hilfe...)