Hallo ,
Ich möchte gerne das Modul marmalade :: Diff to free shipping von Joscha ein wenig verändern. Da ich mit verschiedenen Ländern arbeite brauche ich auch verschiedene Berechnungen, denn in diesem Modul wird nur ein Preis abgefragt mit:
$sQ = 'select OXPARAM from oxdelivery where OXADDSUM = 0';
Hier ist der Original Code:
<?php
/*
* ## Installation
* ## Upload file to modules-Directory
* ## module entry in Admin: oxbasket => marm_diff_oxbasket
* ## Place the getter-Function in your template: [{$oxcmp_basket->getPriceUntilFreeShipping()}]
*
*/
class marm_diff_oxbasket extends marm_diff_oxbasket_parent
{
public function getPriceUntilFreeShipping()
{
if ( $this->_oProductsPriceList ) {
$productsPrice = $this->_oProductsPriceList->getBruttoSum();
$oDB = oxDb::getDb();
$sQ = 'select OXPARAM from oxdelivery where OXADDSUM = 0';
$freeShippingPrice = oxDb::getDb()->GetOne($sQ);
$priceDiff = $freeShippingPrice - $productsPrice;
if ($priceDiff < 0)
{
$priceDiff=0;
}
return oxLang::getInstance()->formatCurrency( $priceDiff, $this->getBasketCurrency() );
}
return null;
}
}
?>
Ich habe mir gedacht ich mache die Abfrage wie $productsPrice = $this->_oProductsPriceList->getBruttoSum(); statt die Datenbank abzufragen.
im Basket heißt die Funktion [{ $oxcmp_basket->getFDeliveryCosts() }]
also füge ich den Code aus oxbasket.php:
$this->getCosts( 'oxdelivery' );
if ( $oDeliveryCost && ( $this->getBasketUser() || $this->getConfig()->getConfigParam( 'blCalculateDelCostIfNotLoggedIn' ) ) ) {
return oxLang::getInstance()->formatCurrency( $oDeliveryCost->getBruttoPrice() ); anstelle der DB Abfrage.
Das haut aber nicht hin, :(
Wo ist der Fehler?
Hier ist der Code mit Veränderungen:
<?php
/*
* ## Installation
* ## Upload file to modules-Directory
* ## module entry in Admin: oxbasket => marm_diff_oxbasket
* ## Place the getter-Function in your template: [{$oxcmp_basket->getPriceUntilFreeShipping()}]
*
*/
class marm_diff_oxbasket extends marm_diff_oxbasket_parent
{
public function getPriceUntilFreeShipping()
{
if ( $this->_oProductsPriceList ) {
$productsPrice = $this->_oProductsPriceList->getBruttoSum();
$freeShippingPrice = $this->getCosts( 'oxdelivery' );
if ( $oDeliveryCost && ( $this->getBasketUser() || $this->getConfig()->getConfigParam( 'blCalculateDelCostIfNotLoggedIn' ) ) ) {
return oxLang::getInstance()->formatCurrency( $oDeliveryCost->getBruttoPrice() );
$priceDiff = $freeShippingPrice - $productsPrice;
if ($priceDiff < 0)
{
$priceDiff=0;
}
return oxLang::getInstance()->formatCurrency( $priceDiff, $this->getBasketCurrency() );
}
return null;
}
}
?>
Ich möchte gerne das Modul marmalade :: Diff to free shipping von Joscha ein wenig verändern. Da ich mit verschiedenen Ländern arbeite brauche ich auch verschiedene Berechnungen, denn in diesem Modul wird nur ein Preis abgefragt mit:
$sQ = 'select OXPARAM from oxdelivery where OXADDSUM = 0';
Hier ist der Original Code:
<?php
/*
* ## Installation
* ## Upload file to modules-Directory
* ## module entry in Admin: oxbasket => marm_diff_oxbasket
* ## Place the getter-Function in your template: [{$oxcmp_basket->getPriceUntilFreeShipping()}]
*
*/
class marm_diff_oxbasket extends marm_diff_oxbasket_parent
{
public function getPriceUntilFreeShipping()
{
if ( $this->_oProductsPriceList ) {
$productsPrice = $this->_oProductsPriceList->getBruttoSum();
$oDB = oxDb::getDb();
$sQ = 'select OXPARAM from oxdelivery where OXADDSUM = 0';
$freeShippingPrice = oxDb::getDb()->GetOne($sQ);
$priceDiff = $freeShippingPrice - $productsPrice;
if ($priceDiff < 0)
{
$priceDiff=0;
}
return oxLang::getInstance()->formatCurrency( $priceDiff, $this->getBasketCurrency() );
}
return null;
}
}
?>
Ich habe mir gedacht ich mache die Abfrage wie $productsPrice = $this->_oProductsPriceList->getBruttoSum(); statt die Datenbank abzufragen.
im Basket heißt die Funktion [{ $oxcmp_basket->getFDeliveryCosts() }]
also füge ich den Code aus oxbasket.php:
$this->getCosts( 'oxdelivery' );
if ( $oDeliveryCost && ( $this->getBasketUser() || $this->getConfig()->getConfigParam( 'blCalculateDelCostIfNotLoggedIn' ) ) ) {
return oxLang::getInstance()->formatCurrency( $oDeliveryCost->getBruttoPrice() ); anstelle der DB Abfrage.
Das haut aber nicht hin, :(
Wo ist der Fehler?
Hier ist der Code mit Veränderungen:
<?php
/*
* ## Installation
* ## Upload file to modules-Directory
* ## module entry in Admin: oxbasket => marm_diff_oxbasket
* ## Place the getter-Function in your template: [{$oxcmp_basket->getPriceUntilFreeShipping()}]
*
*/
class marm_diff_oxbasket extends marm_diff_oxbasket_parent
{
public function getPriceUntilFreeShipping()
{
if ( $this->_oProductsPriceList ) {
$productsPrice = $this->_oProductsPriceList->getBruttoSum();
$freeShippingPrice = $this->getCosts( 'oxdelivery' );
if ( $oDeliveryCost && ( $this->getBasketUser() || $this->getConfig()->getConfigParam( 'blCalculateDelCostIfNotLoggedIn' ) ) ) {
return oxLang::getInstance()->formatCurrency( $oDeliveryCost->getBruttoPrice() );
$priceDiff = $freeShippingPrice - $productsPrice;
if ($priceDiff < 0)
{
$priceDiff=0;
}
return oxLang::getInstance()->formatCurrency( $priceDiff, $this->getBasketCurrency() );
}
return null;
}
}
?>