function main($OID) { if (!array_key_exists("shippingForm", $_GET)) { $data = takeShippingFromDataBase($OID); showShippingForm($data, ""); } else { $badFields = shippingValidate($_GET); if (count($badFields) != 0) { showShippingForm($_GET, "", $badFields); print_r($badFields); } else { $OID = addShippingToDataBase($_GET); // go back to the order page $config = getConfigData(); $backToOrder = getSpecialVariable("backToOrder", $config); backToWPPage($backToOrder, "oid={$OID}"); } } }
function main() { if (array_key_exists("CID", $_GET)) { $CID = $_GET["CID"]; } else { print_r("ERROR: CID NOT FOUND"); $CID = 1; } if (!array_key_exists("customerForm", $_GET)) { $data = takeCustomerFromDataBase($CID); showCustomerForm($data, "", array()); // sends an empty array as the badFields } else { $badFields = customerValidate($_GET); // checks to make sure the info given is complete if (count($badFields) != 0) { showCustomerForm($_GET, "", $badFields); } else { // at this point we have good data, and just need to get it into the // database. Before we do it, get the OID from the form data so we // know whether we need to go back to the orders page or customer page $OID = NULL; if (array_key_exists("OID", $_GET)) { $OID = $_GET["OID"]; } $customer = formatForDataBase($_GET); $CID = dbUpdate("customers", $customer, "CID", $CID); // get the configuration information from the Wordpress page so we know where // our target "return to" pages are $config = getConfigData(); $backToOrder = getSpecialVariable("backToOrder", $config); $backToCustomer = getSpecialVariable("backToCustomer", $config); if ($OID) { // came from order backToWPPage($backToOrder, "oid={$OID}"); } else { // otherwise from a customer edit backToWPPage($backToCustomer, "CID={$CID}"); } } } }
function processRequestConfirmed($order, $page_id, $oid, $request, $deleteLink = "", $packingListLink = "", $shippingLink = "") { $message = ""; $errorMessage = ""; switch ($request) { case "delete": if (current_user_can("can_delete_orders")) { dbOrderDelete($oid); dbOrderDeleteItems($oid); } backToLink($deleteLink); return; case "shipit": if (current_user_can("can_ship")) { backToLink($shippingLink, "OID={$oid}"); } break; case "unshipit": if (current_user_can("can_ship")) { dbUpdate("orders", array("ShippedDate" => 0), "OID", $oid); } break; case "dup": if (current_user_can("can_duplicate_orders")) { $newoid = dbOrderDuplicate($oid); if (!$newoid) { $errorMessage = "Could not duplicate the order!"; } // bulk update the new record $updateOrder = array(); $updateOrder["OrderedDate"] = time(); $updateOrder["WasCanceled"] = false; $updateOrder["WasReceived"] = false; $updateOrder["RequestedPay"] = 0; $updateOrder["InvoiceNumber"] = 0; $updateOrder["InvoiceID"] = ""; $updateOrder["InvoiceURL"] = ""; $updateOrder["PaidDate"] = 0; $updateOrder["ShippedDate"] = 0; $updateOrder["ShippingFee"] = 0; $updateOrder["ExpediteFee"] = 0; $updateOrder["Discount"] = 0; $updateOrder["ReleasedToShipping"] = 0; // this is somewhat ugly - to put the link for the duplicate order, the text has to have // html in it. Yuck. $updateOrder["AdminONotes"] = "ORDER DUPLICATE of <a href=\"?page_id={$page_id}&oid={$oid}\">{$oid}</a>"; $updateOrder["CustomerONotes"] = ""; dbOrderModify($newoid, $updateOrder); $message = "Order {$oid} duplicated to this new order."; $oid = $newoid; } break; case "cancel": if (current_user_can("can_cancel_orders")) { dbOrderCancel($oid); $retdata = paypalInvoiceCancel($oid); if ($retdata["success"]) { $message = "Order canceled. Any Paypal invoices canceled."; } else { // upon error, some notice needs to be shown $errorMessage = "Order canceled. But Paypal rejected the request to cancel the invoice."; $errorMessage .= " It said: " . $retdata["error"][0]["message"]; } } break; case "uncancel": if (current_user_can("can_cancel_orders")) { $newoid = dbOrderDuplicate($oid); if (!$newoid) { $errorMessage = "Could not duplicate the order! Order still canceled."; } // bulk update the new record $updateOrder = array(); $updateOrder["WasCanceled"] = false; $updateOrder["WasReceived"] = false; $updateOrder["RequestedPay"] = 0; $updateOrder["InvoiceNumber"] = 0; $updateOrder["InvoiceID"] = ""; $updateOrder["InvoiceURL"] = ""; $updateOrder["PaidDate"] = 0; $updateOrder["ShippedDate"] = 0; $updateOrder["ReleasedToShipping"] = 0; dbOrderModify($newoid, $updateOrder); $message = "Order UN-canceled. New order number is {$newoid}."; $oid = $newoid; } break; case "cancelpayment": if (current_user_can("can_cancel_payment")) { flush(); $retdata = paypalInvoiceCancel($oid); if ($retdata) { dbCancelInvoice($oid); } else { // TODO - upon error, soome notice needs to be shown } } break; case "repayment": if (current_user_can("can_request_repayment")) { flush(); if ($order["InvoiceID"]) { $retdata = paypalInvoiceReSend($oid); } else { // apparently the original "invoice" request didn't go through Paypal, so send it there. processRequestConfirmed($order, $page_id, $oid, "payment", $deleteLink, $packingListLink, $shippingLink); return; // should never get here... } if ($retdata["success"]) { $message = "Payment request was resent, which was cool with Paypal."; } else { // upon error, some notice needs to be shown $errorMessage = "Paypal rejected the request to resend the invoice."; $errorMessage .= "<br>It said: " . $retdata["error"][0]["message"]; } } break; case "payment": if (current_user_can("can_request_payment")) { flush(); // cause the page to send out something to make the user's wait easier... lockInFees($oid); // this locks in shipping and expedite fees $retdata = paypalInvoiceSend($oid); if ($retdata["success"]) { // note that payerViewURL is used instead of invoiceURL because the latter requires login dbUpdateInvoice($oid, time(), $retdata["invoiceID"], $retdata["invoiceNumber"], $retdata["payerViewURL"]); $message = "Payment was requested, Paypal was cool with it.."; } else { // upon error, some notice needs to be shown $errorMessage = "Paypal rejected the request to create the invoice."; $errorMessage .= " It said: \"" . $retdata["error"][0]["message"] . "\"."; } } break; case "release": if (current_user_can("can_release_to_shipping")) { dbOrderReleasedToShipping($oid); $message = "Order released to shipping."; } break; case "unrelease": if (current_user_can("can_release_to_shipping")) { dbOrderUnReleasedToShipping($oid); $message = "Order un-released to shipping."; } break; case 'paid': if (current_user_can("can_mark_paid")) { dbOrderModifyPaid($oid, time()); $message = "Order marked paid."; } break; case 'unpaid': if (current_user_can("can_mark_paid")) { dbOrderModifyPaid($oid, false); $message = "Order marked un-paid."; } break; case 'charity': if (current_user_can("can_mark_charity")) { dbOrderModifyCharity($oid, true); $message = "Order marked as charity."; } break; case 'uncharity': if (current_user_can("can_mark_charity")) { dbOrderModifyCharity($oid, false); $message = "Order un-marked as charity."; } break; case 'packing': backToLink($packingListLink, "oid={$oid}"); break; default: echo "Dude. Somehow there was a bad request.\n"; } // go back to the order if ($message) { $message = "&message=" . urlencode($message); } if ($errorMessage) { $errorMessage = "&errorMessage=" . urlencode($errorMessage); } backToWPPage($page_id, "oid={$oid}{$message}{$errorMessage}"); }
function main($OID) { global $repeatTimes; if (!array_key_exists("orderForm", $_GET)) { $data = takeOrderFromDataBase($OID); showOrderForm($data, ""); } else { $badFields = orderValidate($_GET); if (count($badFields) != 0) { showOrderForm($_GET, "", $badFields); } else { dbUpdate("orders", formatNonItemFields($_GET), "OID", $OID); for ($i = 1; $i < $repeatTimes; $i++) { $item = selectItem($_GET, $i); if (!empty($item)) { // checks to be sure the item actually has info if ($item["Quantity"] != 0) { if ($_GET["iid{$i}"] != "") { dbUpdate("items", $item, "OID", $OID, "IID", $_GET["iid{$i}"]); } else { // if the item does not yet exist in the database dbInsertNewItem($OID, $item); } } else { // if the quantity of an item is set to zero dbDeleteItem($_GET["iid{$i}"]); } } } // go back to the order page $config = getConfigData(); $backToOrder = getSpecialVariable("backToOrder", $config); backToWPPage($backToOrder, "oid={$OID}"); } } }