Thread: minimum amount

Page 2 of 6 FirstFirst 1234 ... LastLast
Results 11 to 20 of 59
  1. #11
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: minimum amount

    What does the:
    function installment() {
    // stuff here
    }

    read on the server right now?
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  2. #12
    Join Date
    Jan 2009
    Posts
    2,123
    Plugin Contributions
    0

    Default Re: minimum amount

    I'm not sure. I don't know what you mean?

  3. #13
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: minimum amount

    View the file on the server ...

    You will see the section of the code that starts with:
    function installment() {

    I would like to see the code for that function ...

    If you still are unsure, just post the full file, from the server, so I can see what you are using ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  4. #14
    Join Date
    Jan 2009
    Posts
    2,123
    Plugin Contributions
    0

    Default Re: minimum amount


  5. #15
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: minimum amount

    In post #9 I gave you new code to add to it and I want to see what is on the file, on the server, now reads with the changes ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  6. #16
    Join Date
    Jan 2009
    Posts
    2,123
    Plugin Contributions
    0

    Default Re: minimum amount

    I see. Sorry!!

    PHP Code:
    <?php

    class installment extends base {
      
    /**
       * $code determines the internal 'code' name used to designate "this" payment module
       *
       * @var string
       */
      
    var $code;
      
    /**
       * $title is the displayed name for this payment method
       *
       * @var string
       */
      
    var $title;
      
    /**
       * $description is a soft name for this payment method
       *
       * @var string
       */
      
    var $description;
      
    /**
       * $enabled determines whether this module shows or not... in catalog.
       *
       * @var boolean
       */
      
    var $enabled;
      
    /**
       * @return installment 
       */
      
    function installment() {
        global 
    $order;
        
    $this->code 'installment';
        
    $this->title MODULE_PAYMENT_INSTALLMENT_TEXT_TITLE;
        
    $this->description MODULE_PAYMENT_INSTALLMENT_TEXT_DESCRIPTION;
        
    $this->sort_order MODULE_PAYMENT_INSTALLMENT_SORT_ORDER;
        
    $this->enabled = ((MODULE_PAYMENT_INSTALLMENT_STATUS == 'True') ? true false);
        if (!
    IS_ADMIN_FLAG && $order->info['total'] < 100.00) {
            
    $this->enabled false;
          }

        if (
    $this->enabled) { 
           if (
    ENABLE_SSL != 'true')  
              
    $this->enabled false
        }

        if ((int)
    MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID 0) {
          
    $this->order_status MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID;
        }
     
        
    $this->num_payments MODULE_PAYMENT_INSTALLMENT_NUMBER_PAYMENTS

        if (
    is_object($order)) $this->update_status();
      }
      
    /**
       * calculate zone matches and flag settings to determine whether this module should display to customers or not
       *
       */
      
    function update_status() {
        global 
    $order$db;

        if ( (
    $this->enabled == true) && ((int)MODULE_PAYMENT_INSTALLMENT_ZONE 0) ) {
          
    $check_flag false;
          
    $check $db->Execute("select zone_id from " TABLE_ZONES_TO_GEO_ZONES " where geo_zone_id = '" MODULE_PAYMENT_INSTALLMENT_ZONE "' and zone_country_id = '" $order->billing['country']['id'] . "' order by zone_id");
          while (!
    $check->EOF) {
            if (
    $check->fields['zone_id'] < 1) {
              
    $check_flag true;
              break;
            } elseif (
    $check->fields['zone_id'] == $order->billing['zone_id']) {
              
    $check_flag true;
              break;
            }
            
    $check->MoveNext();
          }

          if (
    $check_flag == false) {
            
    $this->enabled false;
          }
        }
      }
      
    /**
       * JS validation which does error-checking of data-entry if this module is selected for use
       * (Number, Owner, and CVV Lengths)
       *
       * @return string
       */
      
    function javascript_validation() {
        
    $js '  if (payment_value == "' $this->code '") {' "\n" .
        
    '    var cc_owner = document.checkout_payment.inst_cc_owner.value;' "\n" .
        
    '    var cc_number = document.checkout_payment.inst_cc_number.value;' "\n";

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $js .= '    var cc_cvv = document.checkout_payment.inst_cc_cvv.value;' "\n";
        }

        
    $js .= '    if (cc_owner == "" || cc_owner.length < ' CC_OWNER_MIN_LENGTH ') {' "\n" .
        
    '      error_message = error_message + "' MODULE_PAYMENT_INSTALLMENT_TEXT_JS_CC_OWNER '";' "\n" .
        
    '      error = 1;' "\n" .
        
    '    }' "\n" .
        
    '    if (cc_number == "" || cc_number.length < ' CC_NUMBER_MIN_LENGTH ') {' "\n" .
        
    '      error_message = error_message + "' MODULE_PAYMENT_INSTALLMENT_TEXT_JS_CC_NUMBER '";' "\n" .
        
    '      error = 1;' "\n" .
        
    '    }' "\n";

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $js .= '    if (cc_cvv == "" || cc_cvv.length < ' CC_CVV_MIN_LENGTH ') {' "\n" .
          
    '      error_message = error_message + "' MODULE_PAYMENT_INSTALLMENT_TEXT_JS_CC_CVV '";' "\n" .
          
    '      error = 1;' "\n" .
          
    '    }' "\n";
        }

        
    $js .= '  }' "\n";
        return 
    $js;
      }
      
    /**
       * Builds set of input fields for collecting cc info
       *
       * @return array
       */
      
    function compute_share() {
          global 
    $order
          return 
    $order->info['total']/$this->num_payments
      }

      function 
    selection() {
        global 
    $order;
        global 
    $currencies
        
    $share $this->compute_share(); 
        for (
    $i=1$i<13$i++) {
          
    $expires_month[] = array('id' => sprintf('%02d'$i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));
        }

        
    $today getdate();
        for (
    $i=$today['year']; $i $today['year']+10$i++) {
          
    $expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
        }
        
    $explanation_text sprintf(MODULE_PAYMENT_INSTALLMENT_TEXT_EXPLAIN_VERBAGE$this->num_payments);
        
        
    $explanation '<a href="javascript:alert(\'' $explanation_text '\')">' MODULE_PAYMENT_INSTALLMENT_TEXT_EXPLAIN_DETAILS '</a>';

        
    $onFocus ' onfocus="methodSelect(\'pmt-' $this->code '\')"';

        
    $selection = array('id' => $this->code,
                           
    'module' => $this->title,
                           
    'fields' => array(
                                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_EXPLAIN_TITLE
                                               
    'field' => $explanation
                                             
    ),
                                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_PAYMENT_AMOUNT
                                               
    'field' => $currencies->format($sharetrue$order->info['currency'], $order->info['currency_value'])
                                             ),
                                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_OWNER,
                                               
    'field' => zen_draw_input_field('inst_cc_owner'$order->billing['firstname'] . ' ' $order->billing['lastname'], 'id="'.$this->code.'-cc-owner"' $onFocus),
                                               
    'tag' => $this->code.'-cc-owner'),

                                             array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_NUMBER,
                                                   
    'field' => zen_draw_input_field('inst_cc_number''''id="' $this->code '-cc-number"' $onFocus),
                                                   
    'tag' => $this->code '-cc-number'),
                                             array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_EXPIRES,
                                                   
    'field' => zen_draw_pull_down_menu('inst_cc_expires_month'$expires_month'''id="'.$this->code.'-cc-expires-month"' $onFocus) . '&nbsp;' zen_draw_pull_down_menu('inst_cc_expires_year'$expires_year'''id="'.$this->code.'-cc-expires-year"'.$onFocus),
                                                   
    'tag' => $this->code.'-cc-expires-month')
                           ));

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $selection['fields'][] = array('title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_CVV,
                                         
    'field' => zen_draw_input_field('inst_cc_cvv''''size="4" maxlength="4" id="'.$this->code.'-cc-cvv"'.$onFocus),
                                         
    'tag' => $this->code.'-cc-cvv');
        }
        return 
    $selection;
      }
      
    /**
       * Evaluates the Credit Card Type for acceptance and the validity of the Credit Card Number & Expiration Date
       *
       */
      
    function pre_confirmation_check() {
        global 
    $_POST$messageStack;
        
    /**
         * Load the cc_validation class
         */
        
    include(DIR_WS_CLASSES 'cc_validation.php');

        
    $cc_validation = new cc_validation();
        
    $result $cc_validation->validate($_POST['inst_cc_number'], $_POST['inst_cc_expires_month'], $_POST['inst_cc_expires_year']);

        
    $error '';
        switch (
    $result) {
          case -
    1:
          
    $error sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARDsubstr($cc_validation->cc_number04));
          break;
          case -
    2:
          case -
    3:
          case -
    4:
          
    $error TEXT_CCVAL_ERROR_INVALID_DATE;
          break;
          case 
    false:
          
    $error TEXT_CCVAL_ERROR_INVALID_NUMBER;
          break;
        }
        
    /**
         *
         */
        
    if ( ($result == false) || ($result 1) ) {
          
    $payment_error_return 'payment_error=' $this->code '&cc_owner=' urlencode($_POST['inst_cc_owner']) . '&cc_expires_month=' $_POST['inst_cc_expires_month'] . '&cc_expires_year=' $_POST['inst_cc_expires_year'];

          
    $messageStack->add_session('checkout_payment'$error '<!-- ['.$this->code.'] -->''error');
          
    zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT$payment_error_return'SSL'truefalse));
        }

        
    $this->cc_card_type $cc_validation->cc_type;
        
    $this->cc_card_number $cc_validation->cc_number;
      }
      
    /**
       * Display Credit Card Information on the Checkout Confirmation Page
       *
       * @return array
       */
      
    function confirmation() {
        global 
    $_POST;

        
    $confirmation = array('title' => $this->title ': ' $this->cc_card_type,
                              
    'fields' => array(
     
    array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_OWNER,
                              
    'field' => $_POST['inst_cc_owner']),
                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_NUMBER,
                              
    'field' => substr($this->cc_card_number04) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),
                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_EXPIRES,
                              
    'field' => strftime('%B, %Y'mktime(0,0,0,$_POST['inst_cc_expires_month'], 1'20' $_POST['inst_cc_expires_year'])))));

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $confirmation['fields'][] = array('title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_CVV,
                                            
    'field' => $_POST['inst_cc_cvv']);
        }
        return 
    $confirmation;
      }
      
    /**
       * Build the data and actions to process when the "Submit" button is pressed on the order-confirmation screen.
       * This sends the data to the payment gateway for processing.
       * (These are hidden fields on the checkout confirmation page)
       *
       * @return string
       */
      
    function process_button() {
        global 
    $_POST;

        
    $process_button_string zen_draw_hidden_field('inst_cc_owner'$_POST['inst_cc_owner']) .
                                 
    zen_draw_hidden_field('inst_cc_expires'$_POST['inst_cc_expires_month'] . $_POST['inst_cc_expires_year']) .
                                 
    zen_draw_hidden_field('inst_cc_type'$this->cc_card_type) .
                                 
    zen_draw_hidden_field('inst_cc_number'$this->cc_card_number);
        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $process_button_string .= zen_draw_hidden_field('inst_cc_cvv'$_POST['inst_cc_cvv']);
        }

        return 
    $process_button_string;
      }
      
    /**
       * Store the CC info to the order
       *
       */
      
    function before_process() {
        global 
    $_POST$order;

        if (
    defined('MODULE_PAYMENT_INSTALLMENT_STORE_NUMBER') && MODULE_PAYMENT_INSTALLMENT_STORE_NUMBER == 'True') {
          
    $order->info['cc_number'] = $_POST['inst_cc_number'];
        }
        
    $order->info['cc_expires'] = $_POST['inst_cc_expires'];
        
    $order->info['cc_type'] = $_POST['inst_cc_type'];
        
    $order->info['cc_owner'] = $_POST['inst_cc_owner'];
        
    $order->info['cc_cvv'] = $_POST['inst_cc_cvv'];

        
    $len strlen($_POST['inst_cc_number']);
        
    $this->cc_middle substr($_POST['inst_cc_number'], 4, ($len-8));
        if ( (
    defined('MODULE_PAYMENT_INSTALLMENT_EMAIL')) && (zen_validate_email(MODULE_PAYMENT_INSTALLMENT_EMAIL)) ) {
          
    $order->info['cc_number'] = substr($_POST['inst_cc_number'], 04) . str_repeat('X', (strlen($_POST['inst_cc_number']) - 8)) . substr($_POST['inst_cc_number'], -4);
        }
      }
      
    /**
       * Send the collected information via email to the store owner, storing outer digits and emailing middle digits
       *
       */
      
    function after_process() {
        global 
    $insert_id;

        
    $message sprintf(MODULE_PAYMENT_INSTALLMENT_TEXT_MIDDLE_DIGITS_MESSAGE$insert_id$this->cc_middle);
        
    $html_msg['EMAIL_MESSAGE_HTML'] = str_replace("\n\n",'<br />',$message);

        if ( (
    defined('MODULE_PAYMENT_INSTALLMENT_EMAIL')) && (zen_validate_email(MODULE_PAYMENT_INSTALLMENT_EMAIL)) ) {
          
    zen_mail(MODULE_PAYMENT_INSTALLMENT_EMAILMODULE_PAYMENT_INSTALLMENT_EMAILSEND_EXTRA_CC_EMAILS_TO_SUBJECT $insert_id$messageSTORE_NAMEEMAIL_FROM$html_msg'cc_middle_digs');
        } else {
          
    $message MODULE_PAYMENT_INSTALLMENT_TEXT_EMAIL_WARNING $message;
          
    $html_msg['EMAIL_MESSAGE_HTML'] = str_replace("\n\n",'<br />',$message);
          
    zen_mail(EMAIL_FROMEMAIL_FROMMODULE_PAYMENT_INSTALLMENT_TEXT_EMAIL_ERROR SEND_EXTRA_CC_EMAILS_TO_SUBJECT $insert_id$messageSTORE_NAMEEMAIL_FROM$html_msg'cc_middle_digs');
        }
      }
      
    /**
       * Store additional order information
       *
       * @param int $zf_order_id
       */
      
    function after_order_create($zf_order_id) {
        global 
    $db$order;
        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $db->execute("update "  TABLE_ORDERS " set cc_cvv ='" $order->info['cc_cvv'] . "' where orders_id = '" $zf_order_id ."'");
        }
      }
      
    /**
       * Used to display error message details
       *
       * @return array
       */
      
    function get_error() {
        global 
    $_GET;

        
    $error = array('title' => MODULE_PAYMENT_INSTALLMENT_TEXT_ERROR,
                       
    'error' => stripslashes(urldecode($_GET['error'])));

        return 
    $error;
      }
      
    /**
       * Check to see whether module is installed
       *
       * @return boolean
       */
      
    function check() {
        global 
    $db;
        if (!isset(
    $this->_check)) {
          
    $check_query $db->Execute("select configuration_value from " TABLE_CONFIGURATION " where configuration_key = 'MODULE_PAYMENT_INSTALLMENT_STATUS'");
          
    $this->_check $check_query->RecordCount();
        }
        return 
    $this->_check;
      }
      
    /**
       * Install the payment module and its configuration settings
       *
       */
      
    function install() {
        global 
    $db;
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Credit Card Module', 'MODULE_PAYMENT_INSTALLMENT_STATUS', 'True', 'Do you want to accept instalment payments by credit card?', '6', '130', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Split Credit Card Email Address', 'MODULE_PAYMENT_INSTALLMENT_EMAIL', '" STORE_OWNER_EMAIL_ADDRESS "', 'If an email address is entered, the middle digits of the credit card number will be sent to the email address (the outside digits are stored in the database with the middle digits censored)', '6', '131', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Collect & store the CVV number', 'MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV', 'True', 'Do you want to collect the CVV number. Note: If you do the CVV number will be stored in the database in an encoded format.', '6', '132', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Store the Credit Card Number', 'MODULE_PAYMENT_INSTALLMENT_STORE_NUMBER', 'False', 'Do you want to store the Credit Card Number?<br /><br /><strong>WARNING: The Credit Card Number will be stored unenecrypted, and as such may represent a security problem.</strong>', '6', '133', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display', 'MODULE_PAYMENT_INSTALLMENT_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '134' , now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_INSTALLMENT_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '135', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID', '1', 'Set the status of orders made with this payment module to this value', '6', '136', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Number of Payments', 'MODULE_PAYMENT_INSTALLMENT_NUMBER_PAYMENTS', '6', 'Total/Number of Payments = monthly payment', '6', '137', now())");
      }
      
    /**
       * Remove the module and all its settings
       *
       */
      
    function remove() {
        global 
    $db;
        
    $db->Execute("delete from " TABLE_CONFIGURATION " where configuration_key like 'MODULE_PAYMENT_INSTALLMENT_%'");
      }
      
    /**
       * Internal list of configuration keys used for configuration of the module
       *
       * @return array
       */
      
    function keys() {
        return array(
    'MODULE_PAYMENT_INSTALLMENT_STATUS''MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV''MODULE_PAYMENT_INSTALLMENT_EMAIL''MODULE_PAYMENT_INSTALLMENT_ZONE''MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID''MODULE_PAYMENT_INSTALLMENT_SORT_ORDER''MODULE_PAYMENT_INSTALLMENT_NUMBER_PAYMENTS');
      }
    }
    ?>

  7. #17
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: minimum amount

    Add this line above it and see what comes up on the checkout_payment page ...
    Code:
    echo 'I SEE TOTAL: ' . $order->info['total'] . '<br>';
    NOTE: this will distort your display ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  8. #18
    Join Date
    Jan 2009
    Posts
    2,123
    Plugin Contributions
    0

    Default Re: minimum amount

    I've added it to line 38 but it appears to have done nothing. Nothing at all. Am I looking at the wrong file or something?

    Here's the contents of the file with the new line inserted:

    PHP Code:
    <?php

    class installment extends base {
      
    /**
       * $code determines the internal 'code' name used to designate "this" payment module
       *
       * @var string
       */
      
    var $code;
      
    /**
       * $title is the displayed name for this payment method
       *
       * @var string
       */
      
    var $title;
      
    /**
       * $description is a soft name for this payment method
       *
       * @var string
       */
      
    var $description;
      
    /**
       * $enabled determines whether this module shows or not... in catalog.
       *
       * @var boolean
       */
      
    var $enabled;
      
    /**
       * @return installment 
       */
      
    function installment() {
        global 
    $order;
        
    $this->code 'installment';
        
    $this->title MODULE_PAYMENT_INSTALLMENT_TEXT_TITLE;
        
    $this->description MODULE_PAYMENT_INSTALLMENT_TEXT_DESCRIPTION;
        
    $this->sort_order MODULE_PAYMENT_INSTALLMENT_SORT_ORDER;
        
    $this->enabled = ((MODULE_PAYMENT_INSTALLMENT_STATUS == 'True') ? true false);
        echo 
    'I SEE TOTAL: ' $order->info['total'] . '<br>';
        if (!
    IS_ADMIN_FLAG && $order->info['total'] < 100.00) {
            
    $this->enabled false;
          }

        if (
    $this->enabled) { 
           if (
    ENABLE_SSL != 'true')  
              
    $this->enabled false
        }

        if ((int)
    MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID 0) {
          
    $this->order_status MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID;
        }
     
        
    $this->num_payments MODULE_PAYMENT_INSTALLMENT_NUMBER_PAYMENTS

        if (
    is_object($order)) $this->update_status();
      }
      
    /**
       * calculate zone matches and flag settings to determine whether this module should display to customers or not
       *
       */
      
    function update_status() {
        global 
    $order$db;

        if ( (
    $this->enabled == true) && ((int)MODULE_PAYMENT_INSTALLMENT_ZONE 0) ) {
          
    $check_flag false;
          
    $check $db->Execute("select zone_id from " TABLE_ZONES_TO_GEO_ZONES " where geo_zone_id = '" MODULE_PAYMENT_INSTALLMENT_ZONE "' and zone_country_id = '" $order->billing['country']['id'] . "' order by zone_id");
          while (!
    $check->EOF) {
            if (
    $check->fields['zone_id'] < 1) {
              
    $check_flag true;
              break;
            } elseif (
    $check->fields['zone_id'] == $order->billing['zone_id']) {
              
    $check_flag true;
              break;
            }
            
    $check->MoveNext();
          }

          if (
    $check_flag == false) {
            
    $this->enabled false;
          }
        }
      }
      
    /**
       * JS validation which does error-checking of data-entry if this module is selected for use
       * (Number, Owner, and CVV Lengths)
       *
       * @return string
       */
      
    function javascript_validation() {
        
    $js '  if (payment_value == "' $this->code '") {' "\n" .
        
    '    var cc_owner = document.checkout_payment.inst_cc_owner.value;' "\n" .
        
    '    var cc_number = document.checkout_payment.inst_cc_number.value;' "\n";

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $js .= '    var cc_cvv = document.checkout_payment.inst_cc_cvv.value;' "\n";
        }

        
    $js .= '    if (cc_owner == "" || cc_owner.length < ' CC_OWNER_MIN_LENGTH ') {' "\n" .
        
    '      error_message = error_message + "' MODULE_PAYMENT_INSTALLMENT_TEXT_JS_CC_OWNER '";' "\n" .
        
    '      error = 1;' "\n" .
        
    '    }' "\n" .
        
    '    if (cc_number == "" || cc_number.length < ' CC_NUMBER_MIN_LENGTH ') {' "\n" .
        
    '      error_message = error_message + "' MODULE_PAYMENT_INSTALLMENT_TEXT_JS_CC_NUMBER '";' "\n" .
        
    '      error = 1;' "\n" .
        
    '    }' "\n";

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $js .= '    if (cc_cvv == "" || cc_cvv.length < ' CC_CVV_MIN_LENGTH ') {' "\n" .
          
    '      error_message = error_message + "' MODULE_PAYMENT_INSTALLMENT_TEXT_JS_CC_CVV '";' "\n" .
          
    '      error = 1;' "\n" .
          
    '    }' "\n";
        }

        
    $js .= '  }' "\n";
        return 
    $js;
      }
      
    /**
       * Builds set of input fields for collecting cc info
       *
       * @return array
       */
      
    function compute_share() {
          global 
    $order
          return 
    $order->info['total']/$this->num_payments
      }

      function 
    selection() {
        global 
    $order;
        global 
    $currencies
        
    $share $this->compute_share(); 
        for (
    $i=1$i<13$i++) {
          
    $expires_month[] = array('id' => sprintf('%02d'$i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));
        }

        
    $today getdate();
        for (
    $i=$today['year']; $i $today['year']+10$i++) {
          
    $expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
        }
        
    $explanation_text sprintf(MODULE_PAYMENT_INSTALLMENT_TEXT_EXPLAIN_VERBAGE$this->num_payments);
        
        
    $explanation '<a href="javascript:alert(\'' $explanation_text '\')">' MODULE_PAYMENT_INSTALLMENT_TEXT_EXPLAIN_DETAILS '</a>';

        
    $onFocus ' onfocus="methodSelect(\'pmt-' $this->code '\')"';

        
    $selection = array('id' => $this->code,
                           
    'module' => $this->title,
                           
    'fields' => array(
                                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_EXPLAIN_TITLE
                                               
    'field' => $explanation
                                             
    ),
                                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_PAYMENT_AMOUNT
                                               
    'field' => $currencies->format($sharetrue$order->info['currency'], $order->info['currency_value'])
                                             ),
                                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_OWNER,
                                               
    'field' => zen_draw_input_field('inst_cc_owner'$order->billing['firstname'] . ' ' $order->billing['lastname'], 'id="'.$this->code.'-cc-owner"' $onFocus),
                                               
    'tag' => $this->code.'-cc-owner'),

                                             array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_NUMBER,
                                                   
    'field' => zen_draw_input_field('inst_cc_number''''id="' $this->code '-cc-number"' $onFocus),
                                                   
    'tag' => $this->code '-cc-number'),
                                             array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_EXPIRES,
                                                   
    'field' => zen_draw_pull_down_menu('inst_cc_expires_month'$expires_month'''id="'.$this->code.'-cc-expires-month"' $onFocus) . '&nbsp;' zen_draw_pull_down_menu('inst_cc_expires_year'$expires_year'''id="'.$this->code.'-cc-expires-year"'.$onFocus),
                                                   
    'tag' => $this->code.'-cc-expires-month')
                           ));

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $selection['fields'][] = array('title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_CVV,
                                         
    'field' => zen_draw_input_field('inst_cc_cvv''''size="4" maxlength="4" id="'.$this->code.'-cc-cvv"'.$onFocus),
                                         
    'tag' => $this->code.'-cc-cvv');
        }
        return 
    $selection;
      }
      
    /**
       * Evaluates the Credit Card Type for acceptance and the validity of the Credit Card Number & Expiration Date
       *
       */
      
    function pre_confirmation_check() {
        global 
    $_POST$messageStack;
        
    /**
         * Load the cc_validation class
         */
        
    include(DIR_WS_CLASSES 'cc_validation.php');

        
    $cc_validation = new cc_validation();
        
    $result $cc_validation->validate($_POST['inst_cc_number'], $_POST['inst_cc_expires_month'], $_POST['inst_cc_expires_year']);

        
    $error '';
        switch (
    $result) {
          case -
    1:
          
    $error sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARDsubstr($cc_validation->cc_number04));
          break;
          case -
    2:
          case -
    3:
          case -
    4:
          
    $error TEXT_CCVAL_ERROR_INVALID_DATE;
          break;
          case 
    false:
          
    $error TEXT_CCVAL_ERROR_INVALID_NUMBER;
          break;
        }
        
    /**
         *
         */
        
    if ( ($result == false) || ($result 1) ) {
          
    $payment_error_return 'payment_error=' $this->code '&cc_owner=' urlencode($_POST['inst_cc_owner']) . '&cc_expires_month=' $_POST['inst_cc_expires_month'] . '&cc_expires_year=' $_POST['inst_cc_expires_year'];

          
    $messageStack->add_session('checkout_payment'$error '<!-- ['.$this->code.'] -->''error');
          
    zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT$payment_error_return'SSL'truefalse));
        }

        
    $this->cc_card_type $cc_validation->cc_type;
        
    $this->cc_card_number $cc_validation->cc_number;
      }
      
    /**
       * Display Credit Card Information on the Checkout Confirmation Page
       *
       * @return array
       */
      
    function confirmation() {
        global 
    $_POST;

        
    $confirmation = array('title' => $this->title ': ' $this->cc_card_type,
                              
    'fields' => array(
     
    array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_OWNER,
                              
    'field' => $_POST['inst_cc_owner']),
                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_NUMBER,
                              
    'field' => substr($this->cc_card_number04) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),
                        array(
    'title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_EXPIRES,
                              
    'field' => strftime('%B, %Y'mktime(0,0,0,$_POST['inst_cc_expires_month'], 1'20' $_POST['inst_cc_expires_year'])))));

        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $confirmation['fields'][] = array('title' => MODULE_PAYMENT_INSTALLMENT_TEXT_CREDIT_CARD_CVV,
                                            
    'field' => $_POST['inst_cc_cvv']);
        }
        return 
    $confirmation;
      }
      
    /**
       * Build the data and actions to process when the "Submit" button is pressed on the order-confirmation screen.
       * This sends the data to the payment gateway for processing.
       * (These are hidden fields on the checkout confirmation page)
       *
       * @return string
       */
      
    function process_button() {
        global 
    $_POST;

        
    $process_button_string zen_draw_hidden_field('inst_cc_owner'$_POST['inst_cc_owner']) .
                                 
    zen_draw_hidden_field('inst_cc_expires'$_POST['inst_cc_expires_month'] . $_POST['inst_cc_expires_year']) .
                                 
    zen_draw_hidden_field('inst_cc_type'$this->cc_card_type) .
                                 
    zen_draw_hidden_field('inst_cc_number'$this->cc_card_number);
        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $process_button_string .= zen_draw_hidden_field('inst_cc_cvv'$_POST['inst_cc_cvv']);
        }

        return 
    $process_button_string;
      }
      
    /**
       * Store the CC info to the order
       *
       */
      
    function before_process() {
        global 
    $_POST$order;

        if (
    defined('MODULE_PAYMENT_INSTALLMENT_STORE_NUMBER') && MODULE_PAYMENT_INSTALLMENT_STORE_NUMBER == 'True') {
          
    $order->info['cc_number'] = $_POST['inst_cc_number'];
        }
        
    $order->info['cc_expires'] = $_POST['inst_cc_expires'];
        
    $order->info['cc_type'] = $_POST['inst_cc_type'];
        
    $order->info['cc_owner'] = $_POST['inst_cc_owner'];
        
    $order->info['cc_cvv'] = $_POST['inst_cc_cvv'];

        
    $len strlen($_POST['inst_cc_number']);
        
    $this->cc_middle substr($_POST['inst_cc_number'], 4, ($len-8));
        if ( (
    defined('MODULE_PAYMENT_INSTALLMENT_EMAIL')) && (zen_validate_email(MODULE_PAYMENT_INSTALLMENT_EMAIL)) ) {
          
    $order->info['cc_number'] = substr($_POST['inst_cc_number'], 04) . str_repeat('X', (strlen($_POST['inst_cc_number']) - 8)) . substr($_POST['inst_cc_number'], -4);
        }
      }
      
    /**
       * Send the collected information via email to the store owner, storing outer digits and emailing middle digits
       *
       */
      
    function after_process() {
        global 
    $insert_id;

        
    $message sprintf(MODULE_PAYMENT_INSTALLMENT_TEXT_MIDDLE_DIGITS_MESSAGE$insert_id$this->cc_middle);
        
    $html_msg['EMAIL_MESSAGE_HTML'] = str_replace("\n\n",'<br />',$message);

        if ( (
    defined('MODULE_PAYMENT_INSTALLMENT_EMAIL')) && (zen_validate_email(MODULE_PAYMENT_INSTALLMENT_EMAIL)) ) {
          
    zen_mail(MODULE_PAYMENT_INSTALLMENT_EMAILMODULE_PAYMENT_INSTALLMENT_EMAILSEND_EXTRA_CC_EMAILS_TO_SUBJECT $insert_id$messageSTORE_NAMEEMAIL_FROM$html_msg'cc_middle_digs');
        } else {
          
    $message MODULE_PAYMENT_INSTALLMENT_TEXT_EMAIL_WARNING $message;
          
    $html_msg['EMAIL_MESSAGE_HTML'] = str_replace("\n\n",'<br />',$message);
          
    zen_mail(EMAIL_FROMEMAIL_FROMMODULE_PAYMENT_INSTALLMENT_TEXT_EMAIL_ERROR SEND_EXTRA_CC_EMAILS_TO_SUBJECT $insert_id$messageSTORE_NAMEEMAIL_FROM$html_msg'cc_middle_digs');
        }
      }
      
    /**
       * Store additional order information
       *
       * @param int $zf_order_id
       */
      
    function after_order_create($zf_order_id) {
        global 
    $db$order;
        if (
    MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV == 'True')  {
          
    $db->execute("update "  TABLE_ORDERS " set cc_cvv ='" $order->info['cc_cvv'] . "' where orders_id = '" $zf_order_id ."'");
        }
      }
      
    /**
       * Used to display error message details
       *
       * @return array
       */
      
    function get_error() {
        global 
    $_GET;

        
    $error = array('title' => MODULE_PAYMENT_INSTALLMENT_TEXT_ERROR,
                       
    'error' => stripslashes(urldecode($_GET['error'])));

        return 
    $error;
      }
      
    /**
       * Check to see whether module is installed
       *
       * @return boolean
       */
      
    function check() {
        global 
    $db;
        if (!isset(
    $this->_check)) {
          
    $check_query $db->Execute("select configuration_value from " TABLE_CONFIGURATION " where configuration_key = 'MODULE_PAYMENT_INSTALLMENT_STATUS'");
          
    $this->_check $check_query->RecordCount();
        }
        return 
    $this->_check;
      }
      
    /**
       * Install the payment module and its configuration settings
       *
       */
      
    function install() {
        global 
    $db;
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Credit Card Module', 'MODULE_PAYMENT_INSTALLMENT_STATUS', 'True', 'Do you want to accept instalment payments by credit card?', '6', '130', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Split Credit Card Email Address', 'MODULE_PAYMENT_INSTALLMENT_EMAIL', '" STORE_OWNER_EMAIL_ADDRESS "', 'If an email address is entered, the middle digits of the credit card number will be sent to the email address (the outside digits are stored in the database with the middle digits censored)', '6', '131', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Collect & store the CVV number', 'MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV', 'True', 'Do you want to collect the CVV number. Note: If you do the CVV number will be stored in the database in an encoded format.', '6', '132', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Store the Credit Card Number', 'MODULE_PAYMENT_INSTALLMENT_STORE_NUMBER', 'False', 'Do you want to store the Credit Card Number?<br /><br /><strong>WARNING: The Credit Card Number will be stored unenecrypted, and as such may represent a security problem.</strong>', '6', '133', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display', 'MODULE_PAYMENT_INSTALLMENT_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '134' , now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_INSTALLMENT_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '135', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
        
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID', '1', 'Set the status of orders made with this payment module to this value', '6', '136', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Number of Payments', 'MODULE_PAYMENT_INSTALLMENT_NUMBER_PAYMENTS', '6', 'Total/Number of Payments = monthly payment', '6', '137', now())");
      }
      
    /**
       * Remove the module and all its settings
       *
       */
      
    function remove() {
        global 
    $db;
        
    $db->Execute("delete from " TABLE_CONFIGURATION " where configuration_key like 'MODULE_PAYMENT_INSTALLMENT_%'");
      }
      
    /**
       * Internal list of configuration keys used for configuration of the module
       *
       * @return array
       */
      
    function keys() {
        return array(
    'MODULE_PAYMENT_INSTALLMENT_STATUS''MODULE_PAYMENT_INSTALLMENT_COLLECT_CVV''MODULE_PAYMENT_INSTALLMENT_EMAIL''MODULE_PAYMENT_INSTALLMENT_ZONE''MODULE_PAYMENT_INSTALLMENT_ORDER_STATUS_ID''MODULE_PAYMENT_INSTALLMENT_SORT_ORDER''MODULE_PAYMENT_INSTALLMENT_NUMBER_PAYMENTS');
      }
    }
    ?>

  9. #19
    Join Date
    Jan 2009
    Posts
    2,123
    Plugin Contributions
    0

    Default Re: minimum amount

    Ajeh, I feel like an idiot! I've been editing the wrong file!!

    When I went back to post #9 and made the changes to the correct file, sure enough it worked an absolute treat!

    Thank you again for helping me out and please accept my apologies for messing with the wrong file....

    I owe you a coffee!

  10. #20
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: minimum amount

    Thanks for the update that this is now working correctly for you ...

    Hate the old updating the wrong file trick ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

 

 
Page 2 of 6 FirstFirst 1234 ... LastLast

Similar Threads

  1. Minimum sale amount
    By alohacomputer in forum All Other Contributions/Addons
    Replies: 1
    Last Post: 22 Jun 2011, 08:02 PM
  2. Minimum Purchase Amount?
    By wicks in forum Managing Customers and Orders
    Replies: 3
    Last Post: 3 Apr 2009, 06:44 PM
  3. minimum order amount
    By paolacauter in forum General Questions
    Replies: 1
    Last Post: 27 Nov 2007, 05:23 PM
  4. Minimum Order Amount
    By msdave in forum Managing Customers and Orders
    Replies: 2
    Last Post: 6 Oct 2007, 12:00 AM
  5. Minimum Order Amount V2.0
    By johnny43 in forum All Other Contributions/Addons
    Replies: 1
    Last Post: 16 Jul 2006, 06:09 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg