ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilShopShoppingCartGUI Class Reference

Class ilShopShoppingCartGUI. More...

+ Inheritance diagram for ilShopShoppingCartGUI:
+ Collaboration diagram for ilShopShoppingCartGUI:

Public Member Functions

 __construct ($user_obj)
 executeCommand ()
 execute command
 unlockBillObjectsInShoppingCart ()
 unlockBMFObjectsInShoppingCart ()
 unlockPAYPALObjectsInShoppingCart ()
 checkCouponsOfShoppingCart ()
 finishEPay ()
 Return from ePay.
 finishPaypal ()
 cancelEPay ()
 cancelPaypal ()
 cartNotEmpty ()
 showItems ()
 setCoupon ()
 removeCoupon ()
 deleteItem ()
 newUserForm ()
 validateNewUser ()
- Public Member Functions inherited from ilShopBaseGUI
 __construct ()

Protected Member Functions

 prepareOutput ()
- Protected Member Functions inherited from ilShopBaseGUI
 addPager ($result, $a_session_key)
 buildSubTabs ()
 setSection ($a_section)
 getSection ()
 setSubSection ($a_sub_section)
 getSubSection ()
 showButton ($a_cmd, $a_text, $a_target= '')
 initTableGUI ()
 setTableGUIBasicData ($tbl, $result_set, $a_default_order_column= '')

Private Member Functions

 addBookings ($pay_method, $coupon_session)
 _getPayMethods ($limitToEnabled=false)
 _getTemplateFilename ($a_pm_title)
 showCouponInput ($payment_type= '')
 showItemsTable (&$a_tpl, $a_result_set, $a_pay_method=0)
 initShoppingCartObject ()
 initPaypalObject ()
 encryptButton ($buttonParams)
 Creates a new encrypted button HTML block.

Private Attributes

 $user_obj
 $psc_obj = null
 $paypal_obj = null
 $totalAmount = array()
 $totalVat = 0
 $epSet
 $session_id

Additional Inherited Members

- Protected Attributes inherited from ilShopBaseGUI
 $ctrl = null
 $ilias = null
 $lng = null
 $tpl = null
 $oGeneralSettings = null
 $section = 0
 $sub_section = 0

Detailed Description

Constructor & Destructor Documentation

ilShopShoppingCartGUI::__construct (   $user_obj)

Definition at line 39 of file class.ilShopShoppingCartGUI.php.

References $user_obj, ilShopBaseGUI\__construct(), checkCouponsOfShoppingCart(), ilPaypalSettings\getInstance(), and ilEPaySettings\getInstance().

{
$this->user_obj = $user_obj;
$this->session_id = session_id();
$this->coupon_obj = new ilPaymentCoupons($this->user_obj);
$this->paypalConfig = $ppSet->getAll();
$this->epSet = ilEPaySettings::getInstance();
$this->epayConfig = $this->epSet->getAll();
#$this->default_currency = ilPaymentCurrency::_getDefaultCurrency();
}

+ Here is the call graph for this function:

Member Function Documentation

ilShopShoppingCartGUI::_getPayMethods (   $limitToEnabled = false)
private

Definition at line 413 of file class.ilShopShoppingCartGUI.php.

Referenced by cartNotEmpty(), and showItems().

{
$objPM = new ilPayMethods();
$get_paymethods = $objPM->readAll();
if(!$limitToEnabled)
{
foreach($get_paymethods as $pm)
{
$pay_methods[$pm['pm_id']]['pm_title'] = $pm['pm_title'];
$pay_methods[$pm['pm_id']]['pm_id'] = $pm['pm_id'];
$pay_methods[$pm['pm_id']]['pm_enabled'] = $pm['pm_enabled'];
$pay_methods[$pm['pm_id']]['save_usr_adr'] = $pm['save_usr_adr'];
}
}
else
{
foreach($get_paymethods as $pm)
{
if($pm['pm_enabled'] == 1)
{
$pay_methods[$pm['pm_id']]['pm_title'] = $pm['pm_title'];
$pay_methods[$pm['pm_id']]['pm_id'] = $pm['pm_id'];
$pay_methods[$pm['pm_id']]['pm_enabled'] = $pm['pm_enabled'];
$pay_methods[$pm['pm_id']]['save_usr_adr'] = $pm['save_usr_adr'];
}
}
}
return $pay_methods;
}

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::_getTemplateFilename (   $a_pm_title)
private

Definition at line 447 of file class.ilShopShoppingCartGUI.php.

Referenced by showItems().

{
// use payment_paymethods -> pm_title
$base = "./Services/Payment/templates/default/tpl.pay_shopping_cart_";
$suffix = ".html";
return $base . $a_pm_title . $suffix;
}

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::addBookings (   $pay_method,
  $coupon_session 
)
private

Definition at line 138 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, ilShopBaseGUI\$ilias, $pay_method, ilPaymentPrices\_getPrice(), ilPaymentPrices\_getPriceString(), and ilShopVats\getRate().

Referenced by unlockBillObjectsInShoppingCart(), unlockBMFObjectsInShoppingCart(), and unlockPAYPALObjectsInShoppingCart().

{
global $ilias, $ilUser, $ilObjDataCache;
include_once './Services/Payment/classes/class.ilPaymentBookings.php';
include_once './Services/Payment/classes/class.ilPaymentObject.php';
include_once './Services/Payment/classes/class.ilPaymentPrices.php';
$booking_obj = new ilPaymentBookings();
$sc_obj = new ilPaymentShoppingCart($this->user_obj);
$items = $sc_obj->getEntries($pay_method);
$sc_obj->clearCouponItemsSession();
foreach($items as $entry)
{
$pobject = new ilPaymentObject($this->user_obj, $entry['pobject_id']);
$price = ilPaymentPrices::_getPrice($entry['price_id']);
if (!empty($_SESSION['coupons'][$coupon_session]))
{
$entry['math_price'] = $entry['price']; // (float) ilPaymentPrices::_getPriceFromArray($price);
foreach ($_SESSION['coupons'][$coupon_session] as $key => $coupon)
{
$this->coupon_obj->setId($coupon['pc_pk']);
$this->coupon_obj->setCurrentCoupon($coupon);
if ($this->coupon_obj->isObjectAssignedToCoupon($pobject->getRefId()))
{
$_SESSION['coupons'][$coupon_session][$key]['total_objects_coupon_price'] += $entry['price']; //(float) ilPaymentPrices::_getPriceFromArray($price);
$_SESSION['coupons'][$coupon_session][$key]['items'][] = $entry;
}
}
}
unset($pobject);
}
$coupon_discount_items = $sc_obj->calcDiscountPrices($_SESSION['coupons'][$coupon_session]);
$i = 0;
foreach($items as $entry)
{
$pobject = new ilPaymentObject($this->user_obj, $entry['pobject_id']);
$price = ilPaymentPrices::_getPrice($entry['price_id']);
if (array_key_exists($entry['pobject_id'], $coupon_discount_items))
{
$bonus = $coupon_discount_items[$entry['pobject_id']]['math_price'] - $coupon_discount_items[$entry['pobject_id']]['discount_price'];
}
$booking_obj->setPobjectId($entry['pobject_id']);
$booking_obj->setCustomerId($this->user_obj->getId());
$booking_obj->setVendorId($pobject->getVendorId());
$booking_obj->setPayMethod($pobject->getPayMethod());
$booking_obj->setOrderDate(time());
$booking_obj->setDuration($price['duration']);
$booking_obj->setPrice(ilPaymentPrices::_getPriceString($entry['price_id']));
$booking_obj->setDiscount($bonus > 0 ? ((-1) * $bonus) : 0);
$booking_obj->setPayed(1);
$booking_obj->setAccess(1);
$obj_id = $ilObjDataCache->lookupObjId($pobject->getRefId());
$obj_type = $ilObjDataCache->lookupType($obj_id);
$obj_title = $ilObjDataCache->lookupTitle($obj_id);
$oVAT = new ilShopVats((int)$pobject->getVatId());
$obj_vat_rate = $oVAT->getRate();
if($bonus > 0)
{
$tmp_price = $booking_obj->getPrice()-$bonus;
$obj_vat_unit = $pobject->getVat($tmp_price);
}else
$obj_vat_unit = $pobject->getVat($booking_obj->getPrice());
$booking_obj->setObjectTitle($obj_title);
$booking_obj->setVatRate($obj_vat_rate);
$booking_obj->setVatUnit($obj_vat_unit);
if(ilPaymethods::_EnabledSaveUserAddress($booking_obj->getPayMethod()))
{
$booking_obj->setStreet($ilUser->getStreet(), $ilUser->getHouseNumber);
$booking_obj->setZipcode($ilUser->getZipcode());
$booking_obj->setCity($ilUser->getCity());
$booking_obj->setCountry($ilUser->getCountry());
}
$current_booking_id = $booking_obj->add();
if ($current_booking_id)
{
$sc_obj->delete($entry['psc_id']);
if (!empty($_SESSION['coupons'][$coupon_session]))
{
foreach ($_SESSION['coupons'][$coupon_session] as $coupon)
{
$this->coupon_obj->setId($coupon['pc_pk']);
$this->coupon_obj->setCurrentCoupon($coupon);
if ($this->coupon_obj->isObjectAssignedToCoupon($pobject->getRefId()))
{
$this->coupon_obj->addCouponForBookingId($current_booking_id);
}
}
}
}
unset($current_booking_id);
unset($pobject);
}
if (!empty($_SESSION['coupons'][$coupon_session]))
{
foreach ($_SESSION['coupons'][$coupon_session] as $coupon)
{
$this->coupon_obj->setId($coupon['pc_pk']);
$this->coupon_obj->setCurrentCoupon($coupon);
$this->coupon_obj->addTracking();
}
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::cancelEPay ( )

Definition at line 401 of file class.ilShopShoppingCartGUI.php.

References ilUtil\sendInfo(), and showItems().

{
ilUtil::sendInfo($this->lng->txt('pay_epay_canceled'));
$this->showItems();
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::cancelPaypal ( )

Definition at line 407 of file class.ilShopShoppingCartGUI.php.

References ilUtil\sendInfo(), and showItems().

{
ilUtil::sendInfo($this->lng->txt('pay_paypal_canceled'));
$this->showItems();
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::cartNotEmpty ( )

Definition at line 456 of file class.ilShopShoppingCartGUI.php.

References _getPayMethods().

{
$pay_methods = $this->_getPayMethods( true);
if (is_array($pay_methods))
for ($p = 0; $p < count($pay_methods); $p++)
{
if (count($items = $this->psc_obj->getEntries($pay_methods['pm_id'])))
{
foreach ($items as $item)
{
return true;
}
}
}
return false;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::checkCouponsOfShoppingCart ( )

Definition at line 262 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, and $pay_method.

Referenced by __construct(), and deleteItem().

{
$objPM = new ilPayMethods();
$get_paymethods = $objPM->readAll();
foreach($get_paymethods as $pm)
{
$pay_methods[$pm['pm_id']]['pm_title'] = $pm['pm_title'];
$pay_methods[$pm['pm_id']]['pm_id'] = $pm['pm_id'];
}
if (is_array($pay_methods))
{
foreach($pay_methods as $pay_method)
{
$coupon_session_id = $pay_method['pm_title'];
if (!is_array($_SESSION['coupons'][$coupon_session_id]))
{
$_SESSION['coupons'][$coupon_session_id] = array();
}
else // check if coupons are valid anymore
{
foreach ($_SESSION['coupons'][$coupon_session_id] as $coupon_id => $session_coupon)
{
$coupon = $this->coupon_obj->getCouponByCode($session_coupon['pcc_code']);
if ($this->coupon_obj->checkCouponValidity() == 0)
{
$assignedItems = 0;
$this->psc_obj = new ilPaymentShoppingCart($this->user_obj);
if (count($items = $this->psc_obj->getEntries($pay_method['pm_id'])))
{
foreach($items as $item)
{
$tmp_pobject = new ilPaymentObject($this->user_obj, $item['pobject_id']);
if ($this->coupon_obj->isObjectAssignedToCoupon($tmp_pobject->getRefId()))
{
++$assignedItems;
}
}
}
if (!$assignedItems)
{
unset($_SESSION['coupons'][$coupon_session_id][$coupon_id]);
}
}
else
{
unset($_SESSION['coupons'][$coupon_session_id][$coupon_id]);
}
}
}
}
}
}

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::deleteItem ( )

Definition at line 1110 of file class.ilShopShoppingCartGUI.php.

References $_POST, checkCouponsOfShoppingCart(), initShoppingCartObject(), ilUtil\sendInfo(), and showItems().

{
if(!count($_POST['item']))
{
ilUtil::sendInfo($this->lng->txt('pay_select_one_item'));
$this->showItems();
return true;
}
foreach($_POST['item'] as $id)
{
$this->psc_obj->delete($id);
}
ilUtil::sendInfo($this->lng->txt('pay_deleted_items'));
$this->showItems();
return true;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::encryptButton (   $buttonParams)
private

Creates a new encrypted button HTML block.

Parameters
arrayThe button parameters as key/value pairs
Returns
mixed A string of HTML or a Paypal error object on failure

Definition at line 1149 of file class.ilShopShoppingCartGUI.php.

References $data, and $name.

{
$merchant_cert = $this->paypalConfig["vendor_cert"];
$merchant_key = $this->paypalConfig["vendor_key"];
$end_cert = $this->paypalConfig["enc_cert"];
$tmpin_file = tempnam('/tmp', 'paypal_');
$tmpout_file = tempnam('/tmp', 'paypal_');
$tmpfinal_file = tempnam('/tmp', 'paypal_');
$rawdata = array();
$buttonParams['cert_id'] = $this->paypalConfig["cert_id"];
foreach ($buttonParams as $name => $value) {
$rawdata[] = "$name=$value";
}
$rawdata = implode("\n", $rawdata);
$fp = fopen($tmpin_file, 'w');
if (!$fp) {
echo "Could not open temporary file '$tmpin_file')";
return false;
# return PayPal::raiseError("Could not open temporary file '$tmpin_file')");
}
fwrite($fp, $rawdata);
fclose($fp);
if (!@openssl_pkcs7_sign($tmpin_file, $tmpout_file, $merchant_cert,
array($merchant_key, $this->paypalConfig["private_key_password"]),
array(), PKCS7_BINARY)) {
echo "Could not sign encrypted data: " . openssl_error_string();
return false;
# return PayPal::raiseError("Could not sign encrypted data: " . openssl_error_string());
}
$data = file_get_contents($tmpout_file);
$data = explode("\n\n", $data);
$data = $data[1];
$data = base64_decode($data);
$fp = fopen($tmpout_file, 'w');
if (!$fp) {
echo "Could not open temporary file '$tmpin_file')";
return false;
# return PayPal::raiseError("Could not open temporary file '$tmpin_file')");
}
fwrite($fp, $data);
fclose($fp);
if (!@openssl_pkcs7_encrypt($tmpout_file, $tmpfinal_file, $end_cert, array(), PKCS7_BINARY)) {
echo "Could not encrypt data:" . openssl_error_string();
return false;
# return PayPal::raiseError("Could not encrypt data:" . openssl_error_string());
}
$encdata = @file_get_contents($tmpfinal_file, false);
if (!$encdata) {
echo "Encryption and signature of data failed.";
return false;
# return PayPal::raiseError("Encryption and signature of data failed.");
}
$encdata = explode("\n\n", $encdata);
$encdata = trim(str_replace("\n", '', $encdata[1]));
$encdata = "-----BEGIN PKCS7-----$encdata-----END PKCS7-----";
@unlink($tmpfinal_file);
@unlink($tmpin_file);
@unlink($tmpout_file);
return $encdata;
}
ilShopShoppingCartGUI::executeCommand ( )

execute command

Definition at line 62 of file class.ilShopShoppingCartGUI.php.

References $cmd, and prepareOutput().

{
global $ilUser;
$cmd = $this->ctrl->getCmd();
switch ($this->ctrl->getNextClass($this))
{
default:
$this->prepareOutput();
if (!$cmd = $this->ctrl->getCmd())
{
$cmd = 'showItems';
}
$this->$cmd();
break;
}
return true;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::finishEPay ( )

Return from ePay.

Todo:

: Check for ePay/PBS error

: Flyt fakturering til callback

Definition at line 326 of file class.ilShopShoppingCartGUI.php.

References $_REQUEST, ilShopBaseGUI\$ilias, ilPayMethods\_getIdByTitle(), ilPurchase\purchase(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

{
global $ilias, $ilUser;
require_once './Services/Payment/classes/class.ilPurchase.php';
try
{
$pm_id = ilPayMethods::_getIdByTitle('epay');
$buy = new ilPurchase( $ilUser->getId(), $pm_id );
$buy->purchase($_REQUEST['tid'] );
}
catch (ilERPException $e)
{
$msg = $e->getMessage();
if (DEVMODE) $msg .= " " . print_r($_REQUEST, true);
}
ilUtil::sendSuccess($this->lng->txt('pay_epay_success'));
$this->ctrl->redirectByClass('ilShopBoughtObjectsGUI', '');
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::finishPaypal ( )

Definition at line 347 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, $res, ERROR_FAIL, ERROR_NOT_COMPLETED, ERROR_PREV_TRANS_ID, ERROR_WRONG_CUSTOMER, ERROR_WRONG_ITEMS, ERROR_WRONG_VENDOR, initPaypalObject(), ilUtil\sendFailure(), ilUtil\sendSuccess(), showItems(), and SUCCESS.

{
global $ilUser;
$this->initPaypalObject();
if (!($fp = $this->paypal_obj->openSocket()))
{
ilUtil::sendFailure($this->lng->txt('pay_paypal_failed').'<br />'.$this->lng->txt('pay_paypal_unreachable').'<br />'.$this->lng->txt('pay_paypal_error_info'));
$this->showItems();
}
else
{
$res = $this->paypal_obj->checkData($fp);
if ($res == SUCCESS)
{
ilUtil::sendSuccess($this->lng->txt('pay_paypal_success'), true);
if($ilUser->getId() == ANONYMOUS_USER_ID || $_SESSION['is_crs_object'] || $_SESSION['is_lm_object'] || $_SESSION['is_file_object'])
{
$this->ctrl->redirectByClass('ilShopShoppingCartGUI', '');
}
else
{
# $this->ctrl->redirectByClass('ilShopBoughtObjectsGUI', '');
$this->ctrl->redirectByClass('ilShopShoppingCartGUI', '');
}
}
else
{
switch ($res)
{
case ERROR_WRONG_CUSTOMER : ilUtil::sendFailure($this->lng->txt('pay_paypal_failed').'<br />'.$this->lng->txt('pay_paypal_error_wrong_customer').'<br />'.$this->lng->txt('pay_paypal_error_info'));
break;
case ERROR_NOT_COMPLETED : ilUtil::sendFailure($this->lng->txt('pay_paypal_failed').'<br />'.$this->lng->txt('pay_paypal_error_not_completed').'<br />'.$this->lng->txt('pay_paypal_error_info'));
break;
case ERROR_PREV_TRANS_ID : ilUtil::sendFailure($this->lng->txt('pay_paypal_failed').'<br />'.$this->lng->txt('pay_paypal_error_prev_trans_id').'<br />'.$this->lng->txt('pay_paypal_error_info'));
break;
case ERROR_WRONG_VENDOR : ilUtil::sendFailure($this->lng->txt('pay_paypal_failed').'<br />'.$this->lng->txt('pay_paypal_error_wrong_vendor').'<br />'.$this->lng->txt('pay_paypal_error_info'));
break;
case ERROR_WRONG_ITEMS : ilUtil::sendFailure($this->lng->txt('pay_paypal_failed').'<br />'.$this->lng->txt('pay_paypal_error_wrong_items').'<br />'.$this->lng->txt('pay_paypal_error_info'));
break;
case ERROR_FAIL : ilUtil::sendFailure($this->lng->txt('pay_paypal_failed').'<br />'.$this->lng->txt('pay_paypal_error_fails').'<br />'.$this->lng->txt('pay_paypal_error_info'));
break;
}
$this->showItems();
}
fclose($fp);
}
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::initPaypalObject ( )
private

Definition at line 1138 of file class.ilShopShoppingCartGUI.php.

Referenced by finishPaypal().

{
$this->paypal_obj = new ilPurchasePaypal($this->user_obj);
}

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::initShoppingCartObject ( )
private

Definition at line 1132 of file class.ilShopShoppingCartGUI.php.

Referenced by deleteItem(), and showItems().

{
$this->psc_obj = new ilPaymentShoppingCart($this->user_obj);
$this->psc_obj->clearCouponItemsSession();
}

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::newUserForm ( )

Definition at line 1220 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, $ilCtrl, ilShopBaseGUI\$lng, ilShopBaseGUI\$tpl, ilPasswordInputGUI\setRetype(), and ilTextInputGUI\setValue().

Referenced by showItems().

{
global $tpl, $lng, $ilCtrl;
include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
$form_2 = new ilPropertyFormGUI();
$form_2->setFormAction($ilCtrl->getFormAction($this, 'validateNewUser'));
$form_2->setTitle($lng->txt('login'));
$form_2->setId('user_frm');
$form_2->addCommandButton('validateNewUser',$lng->txt('save'));
$formName = new ilTextInputGUI($lng->txt('login'), 'user_name');
$formName->setValue($_SESSION['user_name']);
$form_2->addItem($formName);
$formPass = new ilPasswordInputGUI($lng->txt('password'), 'user_pass');
$formPass->setRetype(false);
$formPass->setValue($_SESSION['user_pass']);
$form_2->addItem($formPass);
$tpl->setVariable('USER_FORM',$form_2->getHTML());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::prepareOutput ( )
protected

Reimplemented from ilShopBaseGUI.

Definition at line 82 of file class.ilShopShoppingCartGUI.php.

Referenced by executeCommand().

{
global $ilTabs;
$ilTabs->setTabActive('paya_shopping_cart');
}

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::removeCoupon ( )

Definition at line 950 of file class.ilShopShoppingCartGUI.php.

References $_GET, $_SESSION, and showItems().

{
if (is_array($_SESSION['coupons']))
{
foreach ($_SESSION['coupons'] as $key => $val)
{
unset($_SESSION['coupons'][$key][$_GET['coupon_id']]);
}
}
$this->showItems();
return true;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::setCoupon ( )

Definition at line 882 of file class.ilShopShoppingCartGUI.php.

References $_POST, $_SESSION, ilUtil\sendInfo(), and showItems().

{
if ($_POST['coupon_code'] != '')
{
$coupon = $this->coupon_obj->getCouponByCode($_POST['coupon_code']);
switch ($this->coupon_obj->checkCouponValidity())
{
case 1:
case 2:
ilUtil::sendInfo($this->lng->txt('paya_coupons_not_valid'));
$this->showItems();
return true;
case 3:
ilUtil::sendInfo($this->lng->txt('paya_coupons_coupon_not_found'));
$this->showItems();
return true;
}
$assignedItems = 0;
$this->psc_obj = new ilPaymentShoppingCart($this->user_obj);
if (count($items = $this->psc_obj->getEntries(isset($_POST['payment_type']) ? $_POST['payment_type'] : 'bmf')))
{
foreach($items as $item)
{
$tmp_pobject = new ilPaymentObject($this->user_obj,$item['pobject_id']);
if ($this->coupon_obj->isObjectAssignedToCoupon($tmp_pobject->getRefId()))
{
++$assignedItems;
}
}
}
if (!$assignedItems)
{
ilUtil::sendInfo($this->lng->txt('paya_coupons_no_object_assigned'));
$this->showItems();
return true;
}
$coupon_session_id = $_POST['payment_type'];
if (!array_key_exists($coupon['pc_pk'], $_SESSION['coupons'][$coupon_session_id]))
{
if (is_array($_SESSION['coupons']))
{
foreach ($_SESSION['coupons'] as $key => $val)
{
unset($_SESSION['coupons'][$key][$coupon['pc_pk']]);
}
}
ilUtil::sendInfo($this->lng->txt('paya_coupons_coupon_added'));
$_SESSION['coupons'][$coupon_session_id][$coupon['pc_pk']] = $coupon;
}
else
{
ilUtil::sendInfo($this->lng->txt('paya_coupons_already_in_use'));
}
$this->showItems();
return true;
}
$this->showItems();
return true;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::showCouponInput (   $payment_type = '')
private

Definition at line 968 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, ilShopBaseGUI\$tpl, ilUtil\getImagePath(), and ilUtil\switchColor().

Referenced by showItems().

{
include_once './Services/Payment/classes/class.ilGeneralSettings.php';
$genSet = new ilGeneralSettings();
$tpl = new ilTemplate('tpl.pay_shopping_cart_coupons.html', true, true, 'Services/Payment');
$tpl->setVariable('COUPON_FORMACTION', $this->ctrl->getFormAction($this));
$tpl->setVariable('TITLE', $this->lng->txt('paya_coupons_coupons'));
$tpl->setVariable('TYPE_IMG', ilUtil::getImagePath('icon_pays_b.gif'));
$tpl->setVariable('ALT_IMG', $this->lng->txt('obj_usr'));
$tpl->setVariable('TXT_CODE', $this->lng->txt('paya_coupons_code'));
$tpl->setVariable('CMD_VALUE', $this->lng->txt('send'));
$tpl->setVariable('PAYMENT_TYPE', $payment_type);
$coupon_session = $payment_type;
if (!empty($_SESSION['coupons'][$coupon_session]))
{
$i = 0;
foreach ($_SESSION['coupons'][$coupon_session] as $coupon)
{
$tpl->setCurrentBlock('loop');
$tpl->setVariable('LOOP_ROW', ilUtil::switchColor($i++, '1', '2'));
$tpl->setVariable('LOOP_TXT_COUPON', $this->lng->txt('paya_coupons_coupon'));
$tpl->setVariable('LOOP_CODE', $coupon['pcc_code']);
$this->ctrl->setParameter($this, 'coupon_id', $coupon['pc_pk']);
$this->ctrl->setParameter($this, 'payment_type', $_SESSION['bmf']['payment_type']);
$tpl->setVariable('LOOP_TITLE', $coupon['pc_title']);
if ($coupon['pc_description'] != '') $tpl->setVariable('LOOP_DESCRIPTION', nl2br($coupon['pc_description']));
$tpl->setVariable("LOOP_TYPE", sprintf($this->lng->txt('paya_coupons_'.($coupon['pc_type'] == "fix" ? 'fix' : 'percentaged').'_'.(count($coupon['objects']) == 0 ? 'all' : 'selected').'_objects'),
($coupon['pc_value'] / round($coupon['pc_value'], 0) == 1 && $coupon['pc_type'] == "percent" ? round($coupon['pc_value'], 0) : number_format($coupon['pc_value'], 2, ',', '.')),
($coupon['pc_type'] == "percent" ? "%" :$genSet->get('currency_unit'))));
$tpl->setVariable("LOOP_REMOVE", "<div class=\"il_ContainerItemCommands\" style=\"float: right;\"><a class=\"il_ContainerItemCommand\" href=\"".$this->ctrl->getLinkTarget($this, 'removeCoupon')."\">".$this->lng->txt('remove')."</a></div>");
$tpl->parseCurrentBlock();
}
}
return $tpl->get();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::showItems ( )

http://uk.epay.dk/support/docs.asp?solution=2#pfinput

Definition at line 473 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, $desc, $pay_method, ilShopBaseGUI\$tpl, ilShopUtils\_formatVAT(), _getPayMethods(), ilPaymentPrices\_getPrice(), ilPaymentPrices\_getPriceString(), _getTemplateFilename(), initShoppingCartObject(), newUserForm(), ilUtil\sendInfo(), ilUtil\sendQuestion(), showCouponInput(), and showItemsTable().

Referenced by cancelEPay(), cancelPaypal(), deleteItem(), finishPaypal(), removeCoupon(), setCoupon(), and validateNewUser().

{
global $ilObjDataCache, $ilUser;
include_once './Services/Payment/classes/class.ilPaymentPrices.php';
include_once './Services/Payment/classes/class.ilPaymentCurrency.php';
$this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.pay_shopping_cart.html','Services/Payment');
include_once './Services/Payment/classes/class.ilGeneralSettings.php';
$genSet = new ilGeneralSettings();
$pay_methods = $this->_getPayMethods( true );
$num_items = 0;
$desc = array();
$is_crs_object = false;
$crs_obj_ids = array();
$is_file_object = false;
$is_lm_object = false;
$lm_obj_ids = array();
$force_user_login = false;
foreach($pay_methods as $pay_method)
{
$this->totalVat = 0;
$tpl = new ilTemplate( $this->_getTemplateFilename( $pay_method['pm_title'] ), true,'Services/Payment');
$coupon_session_id = $pay_method['pm_title'];
if (count($items = $this->psc_obj->getEntries( $pay_method['pm_id'])))
{
$counter = 0;
$paypal_counter = 0;
$total_price = 0;
$total_price_in_default_currency = 0;
$total_vat_in_default_currency = 0;
foreach ($items as $item)
{
$tmp_pobject = new ilPaymentObject($this->user_obj,$item['pobject_id']);
$obj_id = $ilObjDataCache->lookupObjId($tmp_pobject->getRefId());
$obj_type = $ilObjDataCache->lookupType($obj_id);
$obj_title = $ilObjDataCache->lookupTitle($obj_id);
$desc[] = "[" . $obj_type . "] " . $obj_title;
$price_arr = ilPaymentPrices::_getPrice($item['price_id']);
// TODO: CURRENCY
/* $is_default_currency = ((int)$price_arr['currency'] == (int)$this->default_currency['currency_id'] ? true : false);
$is_default_currency
? $item_conversion_rate = (float)$this->default_currency['conversion_rate']
: $item_conversion_rate = ilPaymentCurrency::_getConversionRate($price_arr['currency']);
*/
# checks object_type: needed for purchasing file or crs objects without login
switch ($obj_type)
{
case 'crs':
// if is_crs there an user-aacount will be autogenerated
$is_crs_object = true;
$_SESSION['is_crs_object'] = true;
$crs_obj_ids[] = $obj_id;
$_SESSION['crs_obj_ids'] = $crs_obj_ids;
break;
case 'lm':
case 'sahs':
case 'htlm':
case 'tst':
$is_lm_object = true;
$_SESSION['is_lm_object'] = true;
$lm_obj_ids[] = $obj_id;
$_SESSION['lm_obj_ids'] = $lm_obj_ids;
break;
case 'file':
$is_file_object = true;
break;
default:
$force_user_login = true;
break;
}
$direct_paypal_info_output = true;
$assigned_coupons = '';
if (!empty($_SESSION['coupons'][$coupon_session_id]))
{
$price = $price_arr['price'];
$item['math_price'] = (float) $price;
foreach ($_SESSION['coupons'][$coupon_session_id] as $key => $coupon)
{
$this->coupon_obj->setId($coupon['pc_pk']);
$this->coupon_obj->setCurrentCoupon($coupon);
if ($this->coupon_obj->isObjectAssignedToCoupon($tmp_pobject->getRefId()))
{
$assigned_coupons .= $this->lng->txt('paya_coupons_coupon') . ': ' . $coupon['pcc_code'];
$_SESSION['coupons'][$coupon_session_id][$key]['total_objects_coupon_price'] += (float) $price;
$_SESSION['coupons'][$coupon_session_id][$key]['items'][] = $item;
$direct_paypal_info_output = false;
}
}
}
$f_result[$counter]['item'] = ilUtil::formCheckBox(0,'item[]',$item['psc_id']);
$f_result[$counter]['title'] = "<a href=\"goto.php?target=".$obj_type."_".$tmp_pobject->getRefId() . "\">".$obj_title."</a>";
if ($assigned_coupons != '')
{
// !!! $f_result[$counter][count($f_result[$counter]) - 1] .= $assigned_coupons;
$f_result[$counter]['assigned_coupons'] .= $assigned_coupons;
}
if($price_arr['duration'] == 0)
{
$f_result[$counter]['duration'] = $this->lng->txt('unlimited_duration');
}
else
$f_result[$counter]['duration'] = $price_arr['duration'].' '.$this->lng->txt('paya_months');
$float_price = $price_arr['price'];
$total_price += $float_price;
$oVAT = new ilShopVats((int)$tmp_pobject->getVatId());
$f_result[$counter]['vat_rate'] = ilShopUtils::_formatVAT($oVAT->getRate());
//TODO CURRENCY
/*
$current_vat = $tmp_pobject->getVat($float_price);
$current_vat_in_default_currency = $current_vat * $item_conversion_rate;
$current_price_in_default_currency = $float_price * $item_conversion_rate;
$item_current_vat = ilPaymentPrices::_formatPriceToString($current_vat, $price_arr['currency']);
if(!$is_default_currency)
$item_current_vat .= ' '.$this->lng->txt('equivalent').' ('.ilPaymentCurrency::_formatPriceToString((float)$current_vat_in_default_currency,$this->default_currency['symbol']).' )';
$f_result[$counter]['vat_unit'] = $item_current_vat;
$this->totalVat = $this->totalVat + $tmp_pobject->getVat($float_price);
$total_price_in_default_currency += $current_price_in_default_currency;
$total_vat_in_default_currency += $current_vat_in_default_currency;
$_SESSION['currency_conversion'][$pay_method['pm_title']][$counter]['price'] = $current_price_in_default_currency;
$_SESSION['currency_conversion'][$pay_method['pm_title']][$counter]['vat'] = $current_vat_in_default_currency;
$_SESSION['currency_conversion'][$pay_method['pm_title']]['total_vat'] = $total_vat_in_default_currency;
$_SESSION['currency_conversion'][$pay_method['pm_title']]['total_price'] = $total_price_in_default_currency;
$item_current_price = ilPaymentPrices::_formatPriceToString($price_arr['price'],$price_arr['currency']);
if(!$is_default_currency)
$item_current_price .= ' '.$this->lng->txt('equivalent').' ('.ilPaymentCurrency::_formatPriceToString($current_price_in_default_currency,$this->default_currency['symbol']).' )';
$f_result[$counter]['price'] = $item_current_price;
**/
//* old one without currency-conversion
$f_result[$counter]['vat_unit'] = $tmp_pobject->getVat($float_price, 'GUI').' '.$genSet->get('currency_unit');
$this->totalVat = $this->totalVat + $tmp_pobject->getVat($float_price);
$f_result[$counter]['price'] = number_format(ilPaymentPrices::_getPriceString($item['price_id']), 2, ',', '.') .' '.$genSet->get('currency_unit');
/*****/
if ($pay_method['pm_title'] == 'paypal')
{
if ($direct_paypal_info_output == true) // Paypal information in hidden fields
{
$tpl->setCurrentBlock('loop_items');
$tpl->setVariable('LOOP_ITEMS_NO', (++$paypal_counter));
$tpl->setVariable('LOOP_ITEMS_NAME', "[".$obj_id."]: ".$obj_title);
$tpl->setVariable('LOOP_ITEMS_AMOUNT', $float_price);
// TODO : CURRENCY $tpl->setVariable('LOOP_ITEMS_AMOUNT',ilPaymentPrices::_formatPriceToString($price_arr['price'],$price_arr['currency']));
$tpl->parseCurrentBlock('loop_items');
}
}
++$counter;
unset($tmp_pobject);
} // foreach
$this->showItemsTable($tpl, $f_result, $pay_method);
if (!(bool)$genSet->get('hide_coupons'))
{
$tpl->setVariable('COUPON_TABLE', $this->showCouponInput($pay_method['pm_title']));
}
$tpl->setCurrentBlock('buy_link');
switch($pay_method['pm_title'])
{
case 'bill':
if ($this->totalAmount[$pay_method['pm_id']] == 0)
{
$tpl->setVariable('TXT_UNLOCK', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('LINK_UNLOCK', $this->ctrl->getLinkTarget($this, 'unlockBillObjectsInShoppingCart'));
}
else
{
# Anonymous user has to login
if(ANONYMOUS_USER_ID == $ilUser->getId())
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK','login.php?cmd=force_login&login_to_purchase_object=1&forceShoppingCartRedirect=1');
}
else
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK', $this->ctrl->getLinkTargetByClass('ilPurchaseBillGUI', ''));
}
}
break;
case 'bmf':
#$tpl->setVariable("SCRIPT_LINK", './payment.php?view=start_bmf');
if ($this->totalAmount[$pay_method['pm_id']] == 0)
{
$tpl->setVariable('TXT_UNLOCK', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('LINK_UNLOCK', $this->ctrl->getLinkTarget($this, 'unlockBMFObjectsInShoppingCart'));
}
else
{
# Anonymous user has to login
if(ANONYMOUS_USER_ID == $ilUser->getId())
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK','login.php?cmd=force_login&login_to_purchase_object=1&forceShoppingCartRedirect=1');
}
else
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK', $this->ctrl->getLinkTargetByClass('ilPurchaseBMFGUI', ''));
}
}
break;
case 'epay':
# Anonymous user has to login
if(ANONYMOUS_USER_ID == $ilUser->getId())
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK','login.php?cmd=force_login&login_to_purchase_object=1&forceShoppingCartRedirect=1');
}
else
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK', 'https://'.$this->epayConfig['server_host'].$this->epayConfig['server_path']);
$tpl->setVariable('MERCHANT_NUMBER', $this->epayConfig['merchant_number']);
$tpl->setVariable('AMOUNT', $total_price * 100);
$tpl->setVariable('CURRENCY', "208");
$tpl->setVariable('ORDERID', $ilUser->getId()."_".uniqid());
$tpl->setVariable('ACCEPT_URL', ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTarget($this, 'finishEPay'));
$tpl->setVariable('DECLINE_URL', ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTarget($this, 'cancelEPay'));
$tpl->setVariable('INSTANT_CAPTURE', $this->epayConfig['instant_capture'] ? "1" : "0");
$tpl->setVariable('ADDFEE', 1);
$tpl->setVariable('LANGUAGE', 1);
$tpl->setVariable('GROUP', "");
$tpl->setVariable('CARDTYPE', "");
$tpl->setVariable("CALLBACK_URL", ILIAS_HTTP_PATH . "/Services/Payment/classes/class.ilCallback.php?ilUser=" .$ilUser->getId() . "&pay_method=". PAY_METHOD_EPAY);
$tpl->setVariable('DESCRIPTION', $ilUser->getFullName() . " (" . $ilUser->getEmail() . ") #" . $ilUser->getId() . " " . implode(",", $desc));
$tpl->setVariable('AUTH_MAIL', $this->epayConfig['auth_email']);
$tpl->setVariable('MD5KEY', $this->epSet->generateKeyForEpay(208, $total_price*100, $ilUser->getId()."_".uniqid()));
}
break;
case 'paypal':
if ($this->totalAmount[$pay_method['pm_id']] == 0)
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK', $this->ctrl->getLinkTarget($this, 'unlockPAYPALObjectsInShoppingCart'));
}
else
{
if(ANONYMOUS_USER_ID == $ilUser->getId() && $force_user_login == true)
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK','login.php?cmd=force_login&login_to_purchase_object=1&forceShoppingCartRedirect=1');
}
else
{
$tpl->setVariable('TXT_BUY', $this->lng->txt('pay_click_to_buy'));
$tpl->setVariable('SCRIPT_LINK', 'https://'.$this->paypalConfig['server_host'].$this->paypalConfig['server_path']);
}
}
$tpl->setVariable('POPUP_BLOCKER', $this->lng->txt('popup_blocker'));
$tpl->setVariable('VENDOR', $this->paypalConfig['vendor']);
$tpl->setVariable('RETURN', ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTarget($this, 'finishPaypal'));
$tpl->setVariable('CANCEL_RETURN', ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTarget($this, 'cancelPaypal'));
$tpl->setVariable('CUSTOM', $ilUser->getId());
$tpl->setVariable('CURRENCY', $genSet->get('currency_unit'));
// TODO CURRENCY $tpl->setVariable('CURRENCY', $currency);
$tpl->setVariable('PAGE_STYLE', $this->paypalConfig['page_style']);
if (!empty($_SESSION['coupons'][$coupon_session_id]))
{
$coupon_discount_items = $this->psc_obj->calcDiscountPrices($_SESSION['coupons'][$coupon_session_id]);
if (is_array($coupon_discount_items) && !empty($coupon_discount_items))
{
foreach ($coupon_discount_items as $item)
{
$tmp_pobject = new ilPaymentObject($this->user_obj, $item['pobject_id']);
$obj_id = $ilObjDataCache->lookupObjId($tmp_pobject->getRefId());
$obj_title = $ilObjDataCache->lookupTitle($obj_id);
$tpl->setCurrentBlock('loop_items');
$tpl->setVariable('LOOP_ITEMS_NO', (++$paypal_counter));
$tpl->setVariable('LOOP_ITEMS_NAME', "[".$obj_id."]: ".$obj_title);
$tpl->setVariable('LOOP_ITEMS_AMOUNT', round($item['discount_price'], 2));
// TODO CURRENCY $tpl->setVariable('LOOP_ITEMS_AMOUNT', round($item['discount_price'], 2).' '.$currency);
$tpl->parseCurrentBlock('loop_items');
unset($tmp_pobject);
}
}
}
break;
# $buttonParams["upload"] = 1;
# $buttonParams["charset"] = "utf-8";
# $buttonParams["business"] = $this->paypalConfig["vendor"];
# $buttonParams["currency_code"] = "EUR";
# $buttonParams["return"] = "http://www.databay.de/user/jens/paypal.php";
# $buttonParams["rm"] = 2;
# $buttonParams["cancel_return"] = "http://www.databay.de/user/jens/paypal.php";
# $buttonParams["custom"] = "HALLO";
# $buttonParams["invoice"] = "0987654321";
# if ($enc_data = $this->__encryptButton($buttonParams))
# {
# $tpl->setVariable("ENCDATA", $enc_data);
# }
}
if ($pay_method['pm_title'] == 'paypal')
{
$tpl->setVariable('PAYPAL_HINT', $this->lng->txt('pay_hint_paypal'));
$tpl->setVariable('PAYPAL_INFO', $this->lng->txt('pay_info_paypal'));
}
else if ($pay_method['pm_title'] == 'epay')
{
$tpl->setVariable('EPAY_HINT', $this->lng->txt('pay_hint_epay'));
$tpl->setVariable('EPAY_INFO', $this->lng->txt('pay_info_epay'));
}
$tpl->parseCurrentBlock('buy_link');
$tpl->setCurrentBlock('loop');
unset($f_result);
$tpl->parseCurrentBlock('loop');
$this->tpl->setVariable(''.strtoupper($pay_method['pm_title']).'', $tpl->get());
$num_items += $counter;
}
}
#}
if($_SESSION['tmp_user_account'])
{
$question = $this->lng->txt('have_existing_account');
if($_SESSION['tmp_user_account'])
{
$question .= sprintf($this->lng->txt('have_no_existing_account'), $_SESSION['tmp_user_account']['login'],$_SESSION['tmp_user_account']['passwd'][0]);
}
$question .= $this->lng->txt('please_use_account');
if($_SESSION['tmp_transaction'] || ANONYMOUS_USER_ID == $ilUser->getId())
{
$this->newUserForm();
}
}
if(isset($_SESSION['download_links']))
{
include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
$form = new ilPropertyFormGUI();
$form->setTitle($this->lng->txt('download'));
foreach ($_SESSION['download_links'] as $link)
{
$form_item = new ilNonEditableValueGUI();
$form_item->setValue('<a href='.$link.'>'.$link.'</a>');
$form->addItem($form_item);
$this->tpl->setVariable('FORM', $form->getHTML());
}
$_SESSION['download_links'] = array();
}
/***/
if ($num_items == 0)
{
ilUtil::sendInfo($this->lng->txt('pay_shopping_cart_empty'));
return false;
}
/* else
{
//$_SESSION['currency_conversion']=null;
return true;
}
*/
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::showItemsTable ( $a_tpl,
  $a_result_set,
  $a_pay_method = 0 
)
private

Definition at line 1016 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, $totalAmount, ilPaymentPrices\_getPrice(), and ilPayMethods\getStringByPaymethod().

Referenced by showItems().

{
include_once './Services/Payment/classes/class.ilGeneralSettings.php';
$genSet = new ilGeneralSettings();
include_once './Services/Payment/classes/class.ilShoppingCartTableGUI.php';
$tbl = new ilShoppingCartTableGUI($this);
$tbl->setId('tbl_id_'.$a_pay_method);
$tbl->setTitle($this->lng->txt('paya_shopping_cart').
" (".$this->lng->txt('payment_system').": ".
ilPayMethods::getStringByPaymethod($a_pay_method['pm_title']) .")");
$coupon_session = $a_pay_method['pm_title'];
$tbl->setRowTemplate("tpl.shop_shoppingcart_row.html", "Services/Payment");
$tbl->addColumn('', 'item', '1%', true);
$tbl->addColumn($this->lng->txt('title'), "table". $a_pay_method['pm_title']."_title", '30%');
$tbl->addColumn($this->lng->txt('duration'), "table". $a_pay_method['pm_title']."_duration", '30%');
$tbl->addColumn($this->lng->txt('vat_rate'), "table". $a_pay_method['pm_title']."_vat_rate", '15%');
$tbl->addColumn($this->lng->txt('vat_unit'), "table". $a_pay_method['pm_title']."_vat_unit", '15%');
$tbl->addColumn($this->lng->txt('price_a'), "table". $a_pay_method['pm_title']."_price", '10%');
$tbl->setPrefix("table". $a_pay_method['pm_title']."_");
$tbl->addMultiCommand('deleteItem', $this->lng->txt('delete'));
// show total amount of costs
$sc_obj = new ilPaymentShoppingCart($this->user_obj);
$totalAmount = $sc_obj->getTotalAmount();
if (!empty($_SESSION['coupons'][$coupon_session]))
{
if (count($items = $sc_obj->getEntries($a_pay_method['pm_id'])))
{
$tbl->setTotalData('TXT_SUB_TOTAL', $this->lng->txt('pay_bmf_subtotal_amount') . ": ");
$tbl->setTotalData('VAL_SUB_TOTAL', number_format($totalAmount[$a_pay_method['pm_id']], 2, ',', '.') . " " . $genSet->get('currency_unit'));
//TODO: CURRENCY #$tbl->setTotalData('VAL_SUB_TOTAL',ilPaymentPrices::_formatPriceToString($totalAmount[$a_pay_method['pm_id']], (int)$this->default_currency['currency_id'] ));
foreach ($_SESSION['coupons'][$coupon_session] as $coupon)
{
$this->coupon_obj->setId($coupon['pc_pk']);
$this->coupon_obj->setCurrentCoupon($coupon);
$total_object_price = 0.0;
$current_coupon_bonus = 0.0;
foreach ($items as $item)
{
$tmp_pobject = new ilPaymentObject($this->user_obj, $item['pobject_id']);
if ($this->coupon_obj->isObjectAssignedToCoupon($tmp_pobject->getRefId()))
{
$price_data = ilPaymentPrices::_getPrice($item['price_id']);
$price = (float) $price_data['price'];
$total_object_price += $price;
}
unset($tmp_pobject);
}
$current_coupon_bonus = $this->coupon_obj->getCouponBonus($total_object_price);
$totalAmount[$current_coupon_bonus] += $current_coupon_bonus * (-1);
$tbl->setTotalData('TXT_COUPON_BONUS', $this->lng->txt('paya_coupons_coupon') . " " . $coupon['pcc_code'] . ": ");
$tbl->setTotalData('VAL_COUPON_BONUS', number_format($current_coupon_bonus * (-1), 2, ',', '.') . " " . $genSet->get('currency_unit'));
}
if ($totalAmount[$a_pay_method['pm_id']] < 0)
{
$totalAmount[$a_pay_method['pm_id']] = 0;
$this->totalVat = 0;
}
}
}
$this->totalAmount[$a_pay_method['pm_id']] = $totalAmount[$a_pay_method['pm_id']]-$current_coupon_bonus;
$tbl->setTotalData('TXT_TOTAL_AMOUNT', $this->lng->txt('pay_bmf_total_amount').": ");
$tbl->setTotalData('VAL_TOTAL_AMOUNT', number_format($this->totalAmount[$a_pay_method['pm_id']] , 2, ',', '.') . " " . $genSet->get('currency_unit')); #.$item['currency']);
// TODO: CURRENCY
#$currency_conversion_totalvat = (float)$_SESSION['currency_conversion'][$a_pay_method['pm_title']]['total_vat'];
#if($currency_conversion_totalvat > 0) $this->totalVat = $currency_conversion_totalvat;
if ($this->totalVat > 0)
{
$tbl->setTotalData('TXT_TOTAL_VAT', $this->lng->txt('pay_bmf_vat_included') . ": ");
$tbl->setTotalData('VAL_TOTAL_VAT', number_format($this->totalVat , 2, ',', '.') . " " . $genSet->get('currency_unit'));
}
$tbl->setData($a_result_set);
$a_tpl->setVariable('ITEMS_TABLE',$tbl->getCartHTML());
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilShopShoppingCartGUI::unlockBillObjectsInShoppingCart ( )

Definition at line 90 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, addBookings(), and ilUtil\sendInfo().

{
$this->addBookings(PAY_METHOD_BILL, 'bill');
$_SESSION['coupons']['bill'] = '';
ilUtil::sendInfo($this->lng->txt('pay_bmf_thanks'), true);
$this->ctrl->redirectByClass('ilShopBoughtObjectsGUI', '');
return true;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::unlockBMFObjectsInShoppingCart ( )

Definition at line 102 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, addBookings(), and ilUtil\sendInfo().

{
$this->addBookings(PAY_METHOD_BMF, 'bmf');
$_SESSION['coupons']['bmf'] = '';
$_SESSION['bmf']['payment_type'] = '';
$_SESSION['bmf']['debit_entry'] = array();
$_SESSION['bmf']['credit_card'] = array();
ilUtil::sendInfo($this->lng->txt('pay_bmf_thanks'), true);
$this->ctrl->redirectByClass('ilShopBoughtObjectsGUI', '');
return true;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::unlockPAYPALObjectsInShoppingCart ( )

Definition at line 118 of file class.ilShopShoppingCartGUI.php.

References $_SESSION, addBookings(), and ilUtil\sendSuccess().

{
global $ilUser;
$this->addBookings(PAY_METHOD_PAYPAL, 'paypal');
$_SESSION['coupons']['paypal'] = array();
ilUtil::sendSuccess($this->lng->txt('pay_paypal_success'), true);
if(ANONYMOUS_USER_ID == $ilUser->getId() || isset($_SESSION['user_name']))
{
$this->ctrl->redirectByClass('ilShopShoppingCartGUI', '');
}
else
{
$this->ctrl->redirectByClass('ilShopBoughtObjectsGUI', '');
}
return true;
}

+ Here is the call graph for this function:

ilShopShoppingCartGUI::validateNewUser ( )

Definition at line 1245 of file class.ilShopShoppingCartGUI.php.

References $_POST, $_SESSION, ilShopBaseGUI\$ilias, ilShopBaseGUI\$lng, ilShopBaseGUI\$tpl, ilShopUtils\_assignTransactionToCustomerId(), ilCourseParticipants\_getInstanceByObjId(), ilObjUser\_lookupId(), IL_CRS_MEMBER, ilUtil\sendFailure(), ilUtil\sendInfo(), and showItems().

{
global $tpl, $lng, $ilUser, $ilias;
require_once 'Services/User/classes/class.ilObjUser.php';
include_once './Services/Payment/classes/class.ilShopUtils.php';
$obj_user = new ilObjUser();
$user_id = ilObjUser::_lookupId($_POST['user_name']);
$old_user_id = $_SESSION['tmp_transaction']['usr_id'];
$transaction_extern = $_SESSION['tmp_transaction']['tx_id'];
if($user_id != ANONYMOUS_USER_ID && $user_id != $old_user_id && $user_id != NULL)
{
$obj_user = new ilObjUser($user_id);
if($obj_user->getPasswd() == md5($_POST["user_pass"]))
{
ilShopUtils::_assignTransactionToCustomerId($old_user_id, $user_id, $transaction_extern);
// assign new_user_id to crs
if($_SESSION['is_crs_object'] == true)
{
include_once "./Modules/Course/classes/class.ilCourseParticipants.php";
foreach ($_SESSION['crs_obj_ids'] as $obj_id)
{
$members_obj->add($user_id,IL_CRS_MEMBER);
}
}
//delete tmp_shop_user account
if($obj =& $ilias->obj_factory->getInstanceByObjId($old_user_id))
$obj->delete();
$ilUser = new ilObjUser(ANONYMOUS_USER_ID);
ilUtil::sendInfo(sprintf($lng->txt('user_name_accepted'),$_SESSION['tmp_user_account']['login']), true);
unset($_SESSION['tmp_user_account']);
}
$this->showItems();
return true;
}
else
{
ilUtil::sendFailure($lng->txt('pays_no_valid_username_given'));
$this->showItems();
return true;
}
}

+ Here is the call graph for this function:

Field Documentation

ilShopShoppingCartGUI::$epSet
private

Definition at line 34 of file class.ilShopShoppingCartGUI.php.

ilShopShoppingCartGUI::$paypal_obj = null
private

Definition at line 30 of file class.ilShopShoppingCartGUI.php.

ilShopShoppingCartGUI::$psc_obj = null
private

Definition at line 29 of file class.ilShopShoppingCartGUI.php.

ilShopShoppingCartGUI::$session_id
private

Definition at line 37 of file class.ilShopShoppingCartGUI.php.

ilShopShoppingCartGUI::$totalAmount = array()
private

Definition at line 32 of file class.ilShopShoppingCartGUI.php.

Referenced by showItemsTable().

ilShopShoppingCartGUI::$totalVat = 0
private

Definition at line 33 of file class.ilShopShoppingCartGUI.php.

ilShopShoppingCartGUI::$user_obj
private

Definition at line 28 of file class.ilShopShoppingCartGUI.php.

Referenced by __construct().


The documentation for this class was generated from the following file: