public function __construct($ps_plugin_path)
 {
     $this->description = _t('Handles periodic cleanup and email alert tasks for client services features.');
     parent::__construct();
     $this->opo_config = Configuration::load();
     $this->opo_client_services_config = caGetClientServicesConfiguration();
 }
Exemplo n.º 2
0
 public static function getProcessor()
 {
     $o_config = caGetClientServicesConfiguration();
     $vs_classname = $o_config->get("payment_processor") . "Gateway";
     if (!file_exists(__CA_LIB_DIR__ . "/core/Payment/{$vs_classname}.php")) {
         return null;
     }
     require_once __CA_LIB_DIR__ . "/core/Payment/{$vs_classname}.php";
     return new $vs_classname();
 }
Exemplo n.º 3
0
print $this->request->getBaseUrlPath();
?>
/index.php/Search/lookup', {showIcons: false, searchDelay: 100, minimumCharacters: 3, limitPerCategory: 3});
		});
		// initialize CA Utils
			caUI.initUtils();
	</script>
</head>
<body>
		<div id="topBar">
		<?php 
print join(" ", $this->getVar('nav')->getHTMLMenuBarAsLinkArray());
$vb_client_services = (bool) $this->request->config->get('enable_client_services');
if (!$this->request->config->get('dont_allow_registration_and_login')) {
    if ($this->request->isLoggedIn()) {
        $o_client_services_config = caGetClientServicesConfiguration();
        if ($vb_client_services && (bool) $o_client_services_config->get('enable_user_communication')) {
            //
            // Unread client communications
            //
            $t_comm = new ca_commerce_communications();
            $va_unread_messages = $t_comm->getMessages(array('unreadOnly' => true, 'user_id' => $this->request->getUserID()));
            $va_message_set_ids = array();
            foreach ($va_unread_messages as $vn_transaction_id => $va_messages) {
                $va_message_set_ids[] = $va_messages[0]['set_id'];
            }
        }
        if (!$this->request->config->get('disable_my_collections')) {
            # --- get all sets for user
            $t_set = new ca_sets();
            $va_sets = caExtractValuesByUserLocale($t_set->getSets(array('table' => 'ca_objects', 'user_id' => $this->request->getUserID())));
 public function __construct($pn_id = null)
 {
     $this->opo_client_services_config = caGetClientServicesConfiguration();
     if ($va_service_groups = $this->opo_client_services_config->getAssoc('service_groups')) {
         $va_services = array();
         foreach ($va_service_groups as $vs_group_code => $va_group_info) {
             $this->opa_service_groups[$vs_group_code] = $va_group_info;
             foreach ($va_group_info['services'] as $vs_service_code => $va_service_info) {
                 $va_services[$va_service_info['label']] = $vs_service_code;
                 $vs_cost = $this->_formatCostForDisplay($va_service_info);
                 $this->opa_service_groups[$vs_group_code]['services'][$vs_service_code]['label'] = $va_service_info['label'] . "<br/><em>{$vs_cost}</em>";
                 $this->opo_services_list[$vs_service_code] = $va_service_info;
             }
         }
         BaseModel::$s_ca_models_definitions['ca_commerce_order_items']['FIELDS']['service']['BOUNDS_CHOICE_LIST'] = $va_services;
     }
     if (is_array($va_methods = $this->opo_client_services_config->getAssoc('fulfillment_methods'))) {
         $va_method_list = array();
         foreach ($va_methods as $vs_code => $va_info) {
             $va_method_list[$va_info['label']] = $vs_code;
         }
         BaseModel::$s_ca_models_definitions['ca_commerce_order_items']['FIELDS']['fullfillment_method']['BOUNDS_CHOICE_LIST'] = $va_method_list;
     }
     parent::__construct($pn_id);
 }
Exemplo n.º 5
0
 /**
  * Sets payment information and saves to database (unless dontSaveToDatabase option is set)
  *
  * @param array $ps_payment_info
  * @param array $pa_options Options array:
  *		dontSaveToDatabase = 
  *		dontChargeCreditCard =
  */
 public function setPaymentInfo($pa_payment_info, $pa_options = null)
 {
     $o_config = caGetClientServicesConfiguration();
     $vs_currency = $o_config->get('currency');
     $va_payment_info = array('order_id' => $this->getPrimaryKey(), 'created_on' => (int) $this->get('created_on', array('GET_DIRECT_DATE' => true)));
     $vb_dont_save_to_database = isset($pa_options['dontSaveToDatabase']) && $pa_options['dontSaveToDatabase'] ? true : false;
     $vb_dont_charge_credit_card = isset($pa_options['dontChargeCreditCard']) && $pa_options['dontChargeCreditCard'] ? true : false;
     $this->clearErrors();
     switch ($vs_payment_method = $this->get('payment_method')) {
         case 'CREDIT':
             foreach (array('credit_card_type', 'credit_card_number', 'credit_card_ccv', 'credit_card_exp_mon', 'credit_card_exp_yr') as $vs_fld) {
                 $vs_val = isset($pa_payment_info[$vs_fld]) ? $pa_payment_info[$vs_fld] : null;
                 switch ($vs_fld) {
                     case 'credit_card_type':
                         $va_cc_types = $o_config->getAssoc('credit_card_types');
                         if (!is_array($va_cc_types)) {
                             $va_cc_types = array();
                         }
                         if (array_search($vs_val, $va_cc_types) === false) {
                             $this->postError(1101, _t('Credit card type is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                         }
                         break;
                     case 'credit_card_ccv':
                         switch ($pa_payment_info['credit_card_type']) {
                             case 'AMEX':
                                 if (strlen($vs_val) != 4) {
                                     $this->postError(1101, _t('Credit card CCV is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                                 }
                                 break;
                             default:
                                 if (strlen($vs_val) != 3) {
                                     $this->postError(1101, _t('Credit card CCV is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                                 }
                                 break;
                         }
                         break;
                     case 'credit_card_number':
                         $vs_val = preg_replace('![^\\d]+!', '', $vs_val);
                         if (!caValidateCreditCardNumber($vs_val)) {
                             $this->postError(1101, _t('Credit card number is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                         }
                         break;
                     case 'credit_card_exp_mon':
                         if ((int) $vs_val < 1 || (int) $vs_val > 12) {
                             $this->postError(1101, _t('Credit card month is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                         }
                         break;
                     case 'credit_card_exp_yr':
                         $vn_current_year = (int) date("Y");
                         $vn_current_month = (int) date("m");
                         if ((int) $vs_val < $vn_current_year || (int) $vs_val == $vn_current_year && $pa_payment_info['credit_card_exp_mon'] < $vn_current_month) {
                             $this->postError(1101, _t('Credit card is expired'), 'ca_commerce_orders->setPaymentInfo()');
                         }
                         if ((int) $vs_val > $vn_current_year + 12) {
                             $this->postError(1101, _t('Credit card year is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                         }
                         break;
                 }
                 $va_payment_info[$vs_fld] = $vs_val;
             }
             break;
         case 'CHECK':
             foreach (array('check_payee', 'check_bank', 'check_date', 'check_number') as $vs_fld) {
                 $vs_val = isset($pa_payment_info[$vs_fld]) ? $pa_payment_info[$vs_fld] : null;
                 if ($this->get('payment_received_on')) {
                     switch ($vs_fld) {
                         case 'check_payee':
                             if (!strlen($vs_val)) {
                                 $this->postError(1101, _t('Payee name must be set'), 'ca_commerce_orders->setPaymentInfo()');
                             }
                             break;
                         case 'check_bank':
                             if (!strlen($vs_val)) {
                                 $this->postError(1101, _t('Bank name must be set'), 'ca_commerce_orders->setPaymentInfo()');
                             }
                             break;
                         case 'check_date':
                             if (!caDateToUnixTimestamp($vs_val)) {
                                 $this->postError(1101, _t('Check date is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                             }
                             break;
                         case 'check_number':
                             if (!strlen($vs_val)) {
                                 $this->postError(1101, _t('Check number must be set'), 'ca_commerce_orders->setPaymentInfo()');
                             }
                             break;
                     }
                 }
                 $va_payment_info[$vs_fld] = $vs_val;
             }
             break;
         case 'PO':
             foreach (array('purchase_order_date', 'purchase_order_number') as $vs_fld) {
                 $vs_val = isset($pa_payment_info[$vs_fld]) ? $pa_payment_info[$vs_fld] : null;
                 if ($this->get('payment_received_on')) {
                     switch ($vs_fld) {
                         case 'purchase_order_date':
                             if (!caDateToUnixTimestamp($vs_val)) {
                                 $this->postError(1101, _t('Purchase order date is invalid'), 'ca_commerce_orders->setPaymentInfo()');
                             }
                             break;
                         case 'purchase_order_number':
                             if (!strlen($vs_val)) {
                                 $this->postError(1101, _t('Purchase order number must be set'), 'ca_commerce_orders->setPaymentInfo()');
                             }
                             break;
                     }
                 }
                 $va_payment_info[$vs_fld] = $vs_val;
             }
             break;
         case 'NONE':
         case 'CASH':
         default:
             // noop
             break;
     }
     if ($vb_ret = $this->numErrors() > 0 ? false : true) {
         if ($vs_payment_method === 'CREDIT' && !$vb_dont_charge_credit_card && !$this->get('payment_received_on')) {
             // if it's a credit card try to actually charge the card
             if (!($o_payment = Payment::getProcessor())) {
                 return null;
             }
             // couldn't load processor
             if ($va_payment_response = $o_payment->DoPayment($this->getTotal(), $va_payment_info, $this->getBillingInfo(), array('currency' => $vs_currency, 'note' => $o_config->get('payment_note')))) {
                 if ($va_payment_response['success'] === true) {
                     $this->set('payment_status', 'RECEIVED');
                     $this->set('payment_response', $va_payment_response);
                     $this->set('payment_received_on', date('c'));
                     $this->sendEmailPaymentNotification(true, $o_payment->getGatewayName(), $va_payment_response);
                 } else {
                     $this->postError(1101, _t('Credit card charge failed: %1', $va_payment_response['error']), 'ca_commerce_orders->setPaymentInfo()');
                     $this->sendEmailPaymentNotification(false, $o_payment->getGatewayName(), $va_payment_response);
                     return false;
                 }
             }
         }
         if ($vs_payment_method === 'CREDIT') {
             // obscure credit card # and CCV
             $vs_len = strlen($va_payment_info['credit_card_number']);
             $va_payment_info['credit_card_number'] = 'xxxx-xxxxxxx-x' . substr($va_payment_info['credit_card_number'], $vs_len - 5, 5);
             //$va_payment_info['credit_card_ccv'] = str_repeat("x", strlen($va_payment_info['credit_card_ccv']));
         }
         $this->set('payment_details', $va_payment_info);
     } else {
         // Errors in payment info
         return $vb_ret;
     }
     if (!$vb_dont_save_to_database) {
         $this->setMode(ACCESS_WRITE);
         $_REQUEST['form_timestamp'] = time();
         // disable form collision checking since this update will trigger it
         return $this->update();
     }
     return $vb_ret;
 }