--- uc_po.module.original 2009-02-13 12:25:11.000000000 +0100 +++ uc_po.module 2009-02-13 12:26:33.000000000 +0100 @@ -21,7 +21,7 @@ function uc_po_menu() { $items = array(); - + $items['admin/store/orders/po'] = array( 'title' => 'Search by PO', 'page callback' => 'drupal_get_form', @@ -32,6 +32,15 @@ function uc_po_menu() { 'type' => MENU_NORMAL_ITEM, ); + $items['admin/store/settings/po'] = array( + 'title' => t('Purchase Order Settings'), + 'page callback' => 'drupal_get_form', + 'page arguments' => array('uc_po_admin'), + 'access arguments' => array('access administration pages'), + 'description' => t('Configure Purchase Order'), + 'type' => MENU_NORMAL_ITEM, + ); + return $items; } @@ -165,22 +174,26 @@ function uc_payment_method_po($op, &$arg // Handles receiving the data entered by the customer. case 'cart-process': if (empty($_POST['po_number'])) { - drupal_set_message(t('You must specify a PO number to pay by purchase order.'), 'error'); - return FALSE; + $arg1->payment_details['po_number'] = "WEB ORDER"; + return TRUE; } $arg1->payment_details['po_number'] = check_plain($_POST['po_number']); return TRUE; // Display the PO number on the order review page prior to submission. case 'cart-review': - $review[] = array('title' => t('PO number'), 'data' => check_plain($arg1->payment_details['po_number'])); - return $review; + if (variable_get('uc_po_manual', 1) == 1) { + $review[] = array('title' => t('PO number'), 'data' => check_plain($arg1->payment_details['po_number'])); + return $review; + } // Display the PO number in the payment order pane. case 'customer-view': case 'order-view': - $output = t('PO number: !po_number', array('!po_number' => check_plain($arg1->payment_details['po_number']))); - return $output; + if (variable_get('uc_po_manual', 1) == 1) { + $output = t('PO number: !po_number', array('!po_number' => check_plain($arg1->payment_details['po_number']))); + return $output; + } // Displayed on the order edit screen so admin can update the PO number. case 'order-details': @@ -189,8 +202,10 @@ function uc_payment_method_po($op, &$arg // Update the PO number when the order form is submitted. case 'edit-process': - $changes['payment_details']['po_number'] = check_plain($_POST['po_number']); - return $changes; + if (variable_get('uc_po_manual', 1) == 1) { + $changes['payment_details']['po_number'] = check_plain($_POST['po_number']); + return $changes; + } // Add a few PO related fields to the payment methods settings form. case 'settings': @@ -210,70 +225,97 @@ function uc_payment_method_po($op, &$arg // Returns the form for users to enter or adjust a PO number. function uc_payment_method_po_form($order) { - $form['po_instructions'] = array( - '#value' => '
| ' - . t('PO number') .': | '. drupal_render($form['po_number'])
+ if (variable_get('uc_po_manual', 1) == 1) {
+ $form['po_number']['#title'] = '';
+ $table = 'order-edit-table';
+ $label = 'oet-label';
+
+ if (arg(0) !== 'admin') {
+ $output = drupal_render($form['po_instructions']);
+ $table = 'inline-pane-table';
+ $label = 'field-label';
+ }
+
+
+ $output .= '
'. t('Search returned the following results:') + .' '. theme('table', $header, $rows) .' '. t('Search returned the following results:') - .' '. theme('table', $header, $rows) .' '. t('Product Order number has been disabled.') . ' ',
+ );
+ return $form;
+ }
}
function uc_po_search_form_submit($form, &$form_state) {
return 'admin/store/orders/po/'. check_plain($form_state['values']['po_number']);
}
+
+// PO Settings page: used for enable/disable the PO field during the purchase workflow.
+// WARNING: when disabled, the po_number field is set to "WEB ORDER".
+function uc_po_admin(){
+ $form['uc_po_manual'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Enable manual Purchase Order input'),
+ '#default_value' => variable_get('uc_po_manual', 1),
+ '#description' => t("Enabling manual PO, allow customers to specify the Purchase Order code. When disabled it will be setted automatically."),
+ '#required' => TRUE,
+ );
+
+ return system_settings_form($form);
+}
|