common.php/no_cache() implemented to protect appropriate pages
[www.energie.vellum.cz.git] / objednavka.php
1 <?php $cvs_id='$Id$';
2
3         include("common.php");
4
5         $head_css="
6 .red    { color: red; }
7 .italic { font-style: italic; }
8 .quote  { font-family: monospace; }
9 ";
10         no_cache();
11         heading();
12
13 $out="stamp:\t".date("r")."\n";
14 $err=false;
15 $total=0;
16
17 prepvar("payment","(bill|direct)"); // may be fatal() but it shouldn't happen
18
19 $price_a=price_a();
20 foreach ($HTTP_POST_VARS as $key => $value) {
21         if (!ereg("^want_(.+)$",$key,$matched))
22                 continue;
23         $product=$matched[1];
24         if (ereg("[^0-9]",$value)) {
25                 print("<h1 class=\"red\">Jako poèet je mo¾no povoleno zadat jen èíselnou hodnotu!</h1>\n"
26                                 ."<blockquote><p>Opravte prosím polo¾ku "
27                                 ."<span class=\"italic\">".htmlspecialchars($key)."</span>: "
28                                 ."<span class=\"quote\">".htmlspecialchars($value)."</span>"
29                                 ."</p></blockquote>\n");
30                 $err=true;
31                 continue;
32                 }
33         if (!$value)
34                 continue;
35         $price=$value * $price_a[$product];
36         $out.="$key:\t$value ks".($value!=1 ? " x ".$price_a[$product]." Kè" : "")." = $price Kè\n";
37         $total+=$price;
38         }
39 $out.="Celkem:\t$total Kè\n";
40
41 if (!$err && !$total) {
42         print("<h1 class=\"red\">Musíte si objednat alespoò jeden èasopis, napi¹te 1 do dané polo¾ky!</h1>\n");
43         $err=true;
44         }
45
46 function out_addr($title,$pfx)
47 {
48         global $HTTP_POST_VARS;
49         $fields=array(
50                         "Název"  ,"name",
51                         "Ulice"  ,"ulice",
52                         "Mìsto"  ,"mesto",
53                         "PSÈ"    ,"psc",
54                         "IÈO"    ,"ico",
55                         "DIÈ"    ,"dic",
56                         "Kontakt","contakt",
57                         "Tel"    ,"tel",
58                         "Fax"    ,"fax",
59                         "e-mail" ,"mail",
60                         );
61
62         $r="";
63         $first=true;
64         while ($fields) {
65                 $pretty=array_shift($fields);
66                 $var=$pfx.array_shift($fields);
67                 if (!isset($HTTP_POST_VARS[$var]))
68                         continue;
69                 if (""==($value=trim($HTTP_POST_VARS[$var])))
70                         continue;
71                 if ($first) {
72                         $r.="$title\n";
73                         $first=false;
74                         }
75                 $r.="\t$pretty:\t$value\n";
76                 }
77         return($r);
78 }
79
80 if (""==($addr1=out_addr("Adresa pro vystavení a zaslání faktury","addr1_"))) {
81         print("<h1 class=\"red\">Nebyla zadána ¾ádná fakturaèní adresa!</h1>\n");
82         $err=true;
83         }
84 $out.=$addr1;
85 $out.=out_addr("Adresa pro zasílaní èasopisu"          ,"addr2_");
86
87 if (isset($HTTP_POST_VARS["comments"])) {
88         $comments=trim(ereg_replace("[\r\n]+","\n",$HTTP_POST_VARS["comments"]));
89         if (""!=$comments)
90                 $out.="Jiné sdìlení:".ereg_replace("\n","\\0\t","\n".$comments)."\n";
91         }
92
93 // Data acquision error checking:
94
95 if ($err) {
96         print("<p>Nyní se prosím ");
97         if ($have_js)
98                 print("<input type=\"button\" value=\"");
99         print("vra»te zpìt");
100         if ($have_js)
101                 print("\" onclick=\"history.back()\" />");
102         else
103                 print(" (tlaèítkem "
104                                 ."&quot;<span class=\"quote\">Zpìt</span>&quot; èi "
105                                 ."&quot;<span class=\"quote\">Back</span>&quot; prohlí¾eèe)");
106         print(" na pøedchozí stránku a chybu zadaných dat opravte.</p>\n");
107         footer();
108         }
109
110 // Successful data acquisition, write&send:
111
112 /*** Table initialization:
113         drop   table energie_objednavka;
114         create table energie_objednavka (varsym int not null auto_increment primary key,direct bool not null,contents text not null) auto_increment=20010001;
115         alter  table energie_objednavka add index (varsym);
116 ***/
117
118 db_query("insert into $tb_objednavka (direct,contents) values(".($payment=="direct" ? "1" : "0" ).","
119                 ."'".addslashes($out)."')");
120 if ($payment=="direct") {
121         if (!($varsym=mysql_insert_id()))
122                 fatal("Nepodaøilo se zapsat objednávku do SQL");
123         $out="VarSym:\t$varsym\n".$out;
124         }
125
126 // 5th mail argument is supported from PHP-4.0.5
127 if (!mail($mail_to,"EnergieWeb: objednavka",$out,
128 "From: EnergieWeb <$admin_mail>
129 Mime-Version: 1.0
130 Content-Type: text/plain; charset=iso-8859-2
131 Content-Disposition: inline
132 Content-Transfer-Encoding: 8bit
133 "))
134         fatal("Chyba pøi odesílání upozornìní na objednávku, data objednávky ji¾ ale byla úspì¹nì ulo¾ena");
135
136         print("<h1>Objednávka byla úspì¹nì pøijata</h1>\n");
137
138 function gsm_row($name,$value)
139 {
140         return("<tr><td align=\"left\">$name</td>"
141                         ."<td align=\"right\">$value</td><td align=\"right\">".strtr($value,"/.","#*")."</td></tr>\n");
142 }
143
144         switch ($payment) {
145                 case "bill":
146                         print("<p>V nejbli¾¹ích dnech Vám bude zaslána faktura na $total Kè a po jejím zaplacení i objedané zbo¾í.</p>\n");
147                         break;
148                 case "direct":
149                         print(""
150                                         ."<p>Zadejte prosím pøíkaz k následujícímu bankovnímu pøevodu:</p>\n"
151                                         ."<blockquote><table border=\"1\" cellpadding=\"5\">\n"
152                                         ."<tr><th>polo¾ka</th><th>bankovní pøíkaz</th><th>".gsm_banking()."</th></tr>\n"
153                                         );
154                         print(gsm_row("Èíslo úètu",$objednavka_ucet));
155                         print(gsm_row("Èástka",sprintf("%.2f",$total)));
156                         print(gsm_row("Konstantní symbol",$objednavka_konstsym));
157                         print(gsm_row("Variabilní symbol",$varsym));
158                         print(gsm_row("Specifický symbol",$objednavka_specsym));
159                         print(""
160                                         ."</table></blockquote>\n"
161                                         ."<p>Po provedení platby Vám bude zaslán daòový doklad spoleènì s objednaným zbo¾ím.</p>\n"
162                                         );
163                         break;
164                 default:
165                         fatal("INTERNAL: 'payment'='".htmlspecialchars($payment)."', not expected");
166                 }
167         print("<p>Nyní se mù¾ete vrátit na <a href=\"".dirname($HTTP_SERVER_VARS["SCRIPT_NAME"])."/\">úvodní stránku</a>.</p>\n");
168         footer();
169 ?>