make the order object usable on the checkoutfinal page
authorTony Cook <tony@develop-help.com>
Fri, 16 Nov 2012 12:28:05 +0000 (23:28 +1100)
committerTony Cook <tony@develop-help.com>
Fri, 16 Nov 2012 12:28:05 +0000 (23:28 +1100)
site/cgi-bin/modules/BSE/TB/OrderItem.pm
site/cgi-bin/modules/BSE/UI/Shop.pm
site/templates/checkoutfinal_base.tmpl

index 6a96724..73b9dae 100644 (file)
@@ -5,7 +5,7 @@ use Squirrel::Row;
 use vars qw/@ISA/;
 @ISA = qw/Squirrel::Row/;
 
-our $VERSION = "1.001";
+our $VERSION = "1.002";
 
 sub columns {
   return qw/id productId orderId units price wholesalePrice gst options
@@ -80,4 +80,14 @@ sub nice_options {
   return '('.join(", ", map("$_->{desc} $_->{label}", @options)).')';
 }
 
+sub session {
+  my ($self) = @_;
+
+  $self->session_id
+    or return;
+
+  require BSE::TB::SeminarSessions;
+  return BSE::TB::SeminarSessions->getByPkey($self->session_id);
+}
+
 1;
index feb85d0..24e6163 100644 (file)
@@ -17,7 +17,7 @@ use BSE::Shipping;
 use BSE::Countries qw(bse_country_code);
 use BSE::Util::Secure qw(make_secret);
 
-our $VERSION = "1.034";
+our $VERSION = "1.035";
 
 use constant MSG_SHOP_CART_FULL => 'Your shopping cart is full, please remove an item and try adding an item again';
 
@@ -1270,6 +1270,22 @@ sub _finish_order {
   delete @{$req->session}{qw/order_info order_info_confirmed order_need_delivery cart order_work/};
 }
 
+=item orderdone
+
+Display the order after the order is complete.
+
+Sets variables:
+
+=over
+
+=item *
+
+C<order> - the new L<BSE::TB::Order> object.
+
+=back
+
+=cut
+
 sub req_orderdone {
   my ($class, $req) = @_;
 
@@ -1390,6 +1406,8 @@ sub req_orderdone {
     $acts{"if${name}Payment"} = $order->{paymentType} == $id;
   }
 
+  $req->set_variable(order => $order);
+
   return $req->response('checkoutfinal', \%acts);
 }
 
index e4ad215..cda747a 100644 (file)
           <td nowrap height="18"> &nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2" color="#FFFFFF"><b>Qty:</b></font>&nbsp;</td>
           <td height="18"> &nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2" color="#FFFFFF"><b>Price:</b></font>&nbsp;</td>
         </tr>
-        <:iterator begin items:> 
+       <:.set items = [ order.items ] -:>
+       <:.for item in items -:>
         <tr valign="middle" align="center" bgcolor="#FFFFFF"> 
-          <td width="100%" align="left"> &nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><a href="<:product link:>"><:product 
-            description:></a> <:options:><:ifItem session_id:>(session at <:location description:> <:date "%H:%M %d/%m/%Y" session when_at:>)<:or:><:eif:></font></td>
-          <td nowrap align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><:item 
-            units:></font></td>
-          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<: 
-            money item price :></b></font></td>
+          <td width="100%" align="left"> &nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><a href="<:= item.product.link | html :>"><:= item.product.description | html:></a> <:= item.nice_options | html :><:.if item.session_id:>(session at <:= item.session.location.description | html:> <:= bse.date("%H:%M %d/%m/%Y", item.session.when_at) | html:>)<:.end if:></font></td>
+          <td nowrap align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><:= item.units | html :></font></td>
+          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<:= bse.number("money", item.price) | html :></b></font></td>
         </tr>
-        <:iterator end items:> 
+        <:.end for -:>
         <:if Shipping_cost:>
         <tr valign="middle" align="center" bgcolor="#FFFFFF"> 
           <td colspan=2 width="100%" align="left">&nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2">Shipping charges (for <:shipping_method:><:if Delivery_in:>, delivery in <:delivery_in:> days<:eif:>)</font></td>