function PaymentModule($_ModuleConfigID = 0)
 {
     $this->LanguageDir = 'core/modules/payment/languages/';
     $this->ModuleType = PAYMENT_MODULE;
     $this->MethodsTable = PAYMENT_TYPES_TABLE;
     virtualModule::virtualModule($_ModuleConfigID);
 }
 function ShippingRateCalculator($_ModuleConfigID = 0)
 {
     $this->LanguageDir = 'core/modules/shipping/languages/';
     $this->ModuleType = SHIPPING_RATE_MODULE;
     $this->MethodsTable = SHIPPING_METHODS_TABLE;
     virtualModule::virtualModule($_ModuleConfigID);
 }
 /**
  * @param bool $roundfloat: if true total price will have view like 0.00
  * @param mixed
  * @return float: total price in UC
  */
 function calculateTotalPrice($roundfloat = true, $currency = 0, $ignore_freeshipping = false)
 {
     $total_price = 0;
     $r_aItem = $this->Items->getChildNodes('item');
     foreach ($r_aItem as $aItem) {
         /* @var $aItem xmlNodeX */
         $aProduct =& $aItem->getFirstChildByName('product');
         if ($ignore_freeshipping && $aProduct->attribute('free-shipping')) {
             continue;
         }
         $aPrice =& $aItem->getFirstChildByName('price');
         $aQuantity =& $aItem->getFirstChildByName('quantity');
         $item_price = virtualModule::_convertCurrency($aPrice->getData(), $aPrice->attribute('currency'), $currency);
         $total_price += ($roundfloat ? RoundFloatValue($item_price) : $item_price) * $aQuantity->getData();
     }
     return $total_price;
 }
 function uninstall($_ConfigID = 0)
 {
     $_ConfigID = (int) $_ConfigID ? (int) $_ConfigID : $this->ModuleConfigID;
     parent::uninstall($_ConfigID);
     db_phquery('UPDATE ?#ORDERS_TABLE SET shipping_module_id=0 WHERE shipping_module_id=?', $_ConfigID);
 }