Record and display shipping method as well (oops!)
authorAbhijit Menon-Sen <ams@toroid.org>
Thu, 30 Jul 2009 16:44:48 +0000 (16:44 +0000)
committerams <ams@45cb6cf1-00bc-42d2-bb5a-07f51df49f94>
Thu, 30 Jul 2009 16:44:48 +0000 (16:44 +0000)
schema/bse.sql
site/cgi-bin/modules/BSE/DB/Mysql.pm
site/cgi-bin/modules/BSE/TB/Order.pm
site/cgi-bin/modules/BSE/UI/Shop.pm
site/templates/checkoutfinal_base.tmpl
site/templates/checkoutnew_base.tmpl
site/templates/checkoutpay_base.tmpl
site/templates/mailconfirm.tmpl
site/templates/mailorder.tmpl
site/util/mysql.str

index 4263df52ead711a1a81d784aa16f33f342bb2807..611dd043f34e9e3eb2e279d2e87a9748128f2019 100644 (file)
@@ -312,6 +312,8 @@ create table orders (
 
   purchase_order varchar(80) not null default '',
 
+  shipping_method varchar(64) not null default '',
+
   primary key (id),
   index order_cchash(ccNumberHash),
   index order_userId(userId, orderDate)
index 2e1b60bb78607f8d009ada47f282dc4882145578..e088d60f874e9d01f80c07e91b4616562d8d747a 100644 (file)
@@ -150,8 +150,8 @@ SQL
    Orders => 'select * from orders',
    getOrderByPkey => 'select * from orders where id = ?',
    getOrderItemByOrderId => 'select * from order_item where orderId = ?',
-   addOrder => 'insert orders values(null,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
-   replaceOrder => 'replace orders values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+   addOrder => 'insert orders values(null,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+   replaceOrder => 'replace orders values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
    addOrderItem => 'insert order_item values(null,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
    replaceOrderItem => 'replace order_item values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
    getOrderByUserId => 'select * from orders where userId = ?',
index 2623e8d034f99b9b7ba7eb9500b231f230a8391d..d3dcd077139fd73bc23bb4a50e399da20b780150 100644 (file)
@@ -24,7 +24,7 @@ sub columns {
            delivMobile billMobile
            ccOnline ccSuccess ccReceipt ccStatus ccStatusText
            ccStatus2 ccTranId complete delivOrganization billOrganization
-           delivStreet2 billStreet2 purchase_order/;
+           delivStreet2 billStreet2 purchase_order shipping_method/;
 }
 
 =item siteuser
@@ -123,6 +123,8 @@ sub valid_fields {
                     rules=>'phone' },
      instructions => { description => 'Instructions' },
      purchase_order => { description => 'Purchase Order No' },
+     shipping_cost => { description => 'Shipping charges' },
+     shipping_method => { description => 'Shipping method' },
     );
 
   for my $field (keys %fields) {
index 5fb477852c1ab6efbf8204ba7d87a6c99876870b..ab940211862807480bbca6fa4d353a90f8f23d57 100644 (file)
@@ -435,8 +435,7 @@ sub req_checkout {
     ($fake_order{$name}) = $cgi->param($name);
   }
 
-  my $couriers;
-  my $shipping;
+  my ($couriers, $shipping_cost, $shipping_method);
   foreach my $c (Courier::get_couriers($cfg)) {
     my $sel = "";
     if ($sel_c and $sel_c eq $c->name()) {
@@ -449,8 +448,8 @@ sub req_checkout {
 
       if ($sel and $fake_order{delivPostCode} and $fake_order{delivSuburb}) {
         $c->calculate_shipping();
-        $shipping = $c->shipping_cost();
-        # next if $shipping == 0 && $self->{error_message} ne 'OK';
+        $shipping_cost = $c->shipping_cost();
+        $shipping_method = $c->description();
       }
     }
 
@@ -499,14 +498,15 @@ sub req_checkout {
      affiliate_code => escape_html($affiliate_code),
      error_img => [ \&tag_error_img, $cfg, $errors ],
      courier_list => $couriers,
-     shipping => $shipping
+     shipping_cost => $shipping_cost,
+     shipping_method => $shipping_method,
     );
   $req->session->{custom} = \%custom_state;
   my $tmp = $acts{total};
   $acts{total} =
     sub {
         my $total = &$tmp();
-        $total += $shipping if $total and $shipping;
+        $total += $shipping_cost if $total and $shipping_cost;
         return $total;
     };
 
@@ -651,7 +651,8 @@ sub req_show_payment {
      ifPayments => [ \&tag_ifPayments, \@payment_types, \%types_by_name ],
      error_img => [ \&tag_error_img, $cfg, $errors ],
      total => $order_values->{total},
-     shipping => $order_values->{shipping_cost}
+     shipping_cost => $order_values->{shipping_cost},
+     shipping_method => $order_values->{shipping_method},
     );
   for my $type (@pay_types) {
     my $id = $type->{id};
@@ -1005,7 +1006,8 @@ sub req_orderdone {
      session => [ \&tag_session, \$item, \$sem_session ],
      location => [ \&tag_location, \$item, \$location ],
      msg => '',
-     shipping => $order->{shipping_cost}
+     shipping_cost => $order->{shipping_cost},
+     shipping_method => $order->{shipping_method},
     );
   for my $type (@pay_types) {
     my $id = $type->{id};
@@ -1422,6 +1424,7 @@ sub _fillout_order {
           $$rmsg .= ": $err" if $err;
           return;
       }
+      $values->{shipping_method} = $courier->description();
       $values->{shipping_cost} = $cost;
       $values->{total} += $values->{shipping_cost};
   }
index 1ddd6306a790818187606b51472f7e2c842f6416..830a1f9f65b522b56e90ecf8a3584850e61fbbab 100644 (file)
             money item price :></b></font></td>
         </tr>
         <:iterator end items:> 
-        <:ifShipping:>
+        <:ifShipping_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</font></td>
-          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<:money shipping:></b></font></td>
+          <td colspan=2 width="100%" align="left">&nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2">Shipping charges (for <:shipping_method:>)</font></td>
+          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<:money shipping_cost:></b></font></td>
         </tr>
         <:or:><:eif:>
       </table>
index e27408c61198ec85e5d4ea8cda7603f633b2bb51..454ec68672ec3b164dc0fe7d8ef4c42e28888922 100644 (file)
@@ -93,10 +93,10 @@ function BSE_validateForm {
             money item retailPrice :></b></font></td>
         </tr>
         <:iterator end items:> 
-        <:ifShipping:>
+        <:ifShipping_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</font></td>
-          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<:money shipping:></b></font></td>
+          <td colspan=2 width="100%" align="left">&nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2">Shipping charges (for <:shipping_method:>)</font></td>
+          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<:money shipping_cost:></b></font></td>
         </tr>
         <:or:><:eif:>
       </table>
@@ -239,7 +239,7 @@ function BSE_validateForm {
         <textarea name="instructions" rows="5" cols="40" wrap="virtual"><:old instructions:></textarea></font><:error_img instructions:></td>
     </tr>
     <tr>
-      <td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Courier</font></td>
+      <td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Shipping<br /> method:</font></td>
       <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><select name="courier"><:courier_list:></select></font></td>
     </tr>
     <tr> 
index 98d5e8fbfa37c869093ce533ac20594b0d9431e1..4a99f88d1f181b4e42f23fe53e67be1db6aed559 100644 (file)
             money item retailPrice :></b></font></td>
         </tr>
         <:iterator end items:> 
-        <:ifShipping:>
+        <:ifShipping_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</font></td>
-          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<:money shipping:></b></font></td>
+          <td colspan=2 width="100%" align="left">&nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2">Shipping charges (for <:shipping_method:>)</font></td>
+          <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>$<:money shipping_cost:></b></font></td>
         </tr>
         <:or:><:eif:>
       </table>
index bbc0713a7eab02af977230533b2e85615ebe425a..dddffbd900af17bb9b17ed79d8ed9bc7a9e70470 100644 (file)
@@ -32,6 +32,7 @@ Receipt No.  : <:order ccReceipt:>
 :><:eif:><:ifEq [order paymentType] "2"
 :>We will call you to arrange for payment<:or:><:eif:><:
 include custom/payment_type_email.include:>
+To be shipped by: <:order shipping_method:>
 <:if Order instructions:>
 <:with begin wrap:>Special Instructions: <:order instructions:><:with end wrap:>
 <:or Order:><:eif Order:>
index 8531bd40cd0f16e5ef9071c242fdf6ad6bb5ec91..9aba4a13c97830be735155520c6dd82865e1f9bf 100644 (file)
@@ -35,6 +35,7 @@ Card Type    : <:order ccType :><:eif Order:><:or:><:eif
 :><:eif:><:ifEq [order paymentType] "2"
 :>Please call the customer to arrange for payment<:or:><:eif:><:
 include custom/payment_type_email.include:>
+To be shipped by: <:order shipping_method:>
 <:if Order instructions:>
 <:with begin wrap:>Special Instruction: <:order instructions:><:with end wrap:>
 <:or Order:><:eif Order:>
index 002406660f92c78c1c0b345144a6415a9f652b0f..39cea79c00f623aedf1cd5eb95d76666a7a988b0 100644 (file)
@@ -334,6 +334,7 @@ Column billOrganization;varchar(127);NO;;
 Column delivStreet2;varchar(127);NO;;
 Column billStreet2;varchar(127);NO;;
 Column purchase_order;varchar(80);NO;;
+Column shipping_method;varchar(64);NO;;
 Index PRIMARY;1;[id]
 Index order_cchash;0;[ccNumberHash]
 Index order_userId;0;[userId;orderDate]