Record donations in grams.
authorIain Patterson <me@iain.cx>
Wed, 10 Apr 2013 20:55:40 +0000 (16:55 -0400)
committerIain Patterson <me@iain.cx>
Wed, 10 Apr 2013 21:01:10 +0000 (17:01 -0400)
Donations are entered as kilograms to two decimal places but are stored
internally as integers.
Convert the donation to grams so we can save an integer value to the
database.

lib/donation.php
lib/functions.php
lib/order.php

index 8a62a84..16b0197 100644 (file)
     /* Quantity. */
     echo "<tr>\n";
     echo "  <td>Quantity (kg)</td>\n";
-    echo "  <td>"; input("quantity", $donation->getQuantity()); echo "</td>\n";
+    echo "  <td>"; input("quantity", sprintf("%0.2f", $donation->getQuantity() / 1000)); echo "</td>\n";
     echo "</tr>\n";
   }
 
     $donation->setDate($date);
     $donation->setContactId($contact_id);
     $donation->setHubId($hub_id);
-    $donation->setQuantity($quantity);
+    $donation->setQuantity($quantity * 1000);
 
     try {
       $donation->save();
index 86c8140..f9da713 100644 (file)
   }
 
   function get_donation_displayname($donation) {
-    return $donation->getQuantity() . "kg on " . $donation->getDate();
+    return sprintf("%0.2fkg on %s", $donation->getQuantity() / 1000, $donation->getDate());
   }
 
   function get_order_displayname($order) {
-    return $order->getQuantity() . "kg on " . $order->getDate();
+    return sprintf("%0.2fkg on %s", $order->getQuantity() / 1000, $order->getDate());
   }
 
   function get_address_area($address) {
index 5c7e0d8..12a34aa 100644 (file)
     /* Quantity. */
     echo "<tr>\n";
     echo "  <td>Quantity (kg)</td>\n";
-    echo "  <td>"; input("quantity", $order->getQuantity()); echo "</td>\n";
+    echo "  <td>"; input("quantity", sprintf("%0.2f", $order->getQuantity() / 1000)); echo "</td>\n";
     echo "</tr>\n";
 
     /* Driver. */
       $order->setRequesterId($requester_id);
       $order->setBeneficiaryId($beneficiary_id);
       $order->setHubId($hub_id);
-      $order->setQuantity($quantity);
+      $order->setQuantity($quantity * 1000);
 
       /* XXX: begin/commit */
       try {