Вход Регистрация
Файл: core/functions/order_amount_functions.php
Строк: 221
<?php
#####################################
# ShopCMS: Скрипт интернет-магазина
# Copyright (c) by ADGroup
# http://shopcms.ru
#####################################


// *****************************************************************************
// Purpose        get "clear" price as Sum( Price[i]*Quantity[i] )
// Inputs   $cartContent is result of cartGetCartContent function
// Remarks
// Returns        price in universal unit
function oaGetClearPrice$cartContent )
{
        
$res 0;
        for( 
$i=0$i<count($cartContent["cart_content"]); $i++ )
        {
                
$cartItem $cartContent["cart_content"][$i];
                
$res += $cartItem["quantity"]*$cartItem["costUC"];
        }
        return 
$res;
}


// *****************************************************************************
// Purpose        get product tax in univesal unit
// Inputs
//                                $cartContent is result of cartGetCartContent function
//                                $d is discount in percent
//                                $addresses array of
//                                                $shippingAddressID,
//                                                $billingAddressID
//                                        OR
//                                                $shippingAddress - array of
//                                                        "countryID"
//                                                        "zoneID"
//                                                $billingAddress - array of
//                                                        "countryID"
//                                                        "zoneID"
// Remarks
// Returns
function oaGetProductTax$cartContent$d$addresses )
{
        
$res 0;
        for( 
$i=0$i<count($cartContent["cart_content"]); $i++ )
        {
                
$cartItem $cartContent["cart_content"][$i];
                
$q db_query"select count(*) from ".PRODUCTS_TABLE.
                        
" where productID=".(int)$cartItem["productID"] );
                
$count db_fetch_row($q);
                if ( 
$count[0] == )
                        continue;

                
$cartItem $cartContent["cart_content"][$i];
                
$price $cartItem["costUC"] - ($cartItem["costUC"]/100)*$d;
                
$price $price*$cartItem["quantity"];
                if ( 
is_array($addresses[0]) )
                        
$tax taxCalculateTax2$cartItem["productID"],
                                
$addresses[0], $addresses[1] );
                else
                        
$tax taxCalculateTax$cartItem["productID"],
                                
$addresses[0], $addresses[1] );
                
$res += $tax;
        }
        return 
$res;
}

// *****************************************************************************
// Purpose        get product tax in univesal unit
// Inputs
//                                $cartContent is result of cartGetCartContent function
// Remarks
// Returns
function oaGetShippingCostTakingIntoTax$cartContent$shippingMethodID$addresses$orderDetails$CALC_TAX TRUE$shServiceID 0$shServiceFull FALSE )
{
        
$Rates = array();
        
$SimpleFormat false;

        
$shipping_method        shGetShippingMethodById$shippingMethodID );

        if ( 
$shipping_method )
        {
                
$shippingModule modGetModuleObj($shipping_method["module_id"], SHIPPING_RATE_MODULE);

                if ( 
$shippingModule )
                {
                        
//shipping address
                        
if ( !is_array($addresses[0]) )
                        {
                                
$shippingAddress        regGetAddress$addresses[0] );
                        }
                        else
                        {
                                
$shippingAddress        $addresses[0] ;
                        }

                        
//order content
                        
$order = array (
                                
"first_name" => $orderDetails["first_name"],
                                
"last_name" => $orderDetails["last_name"],
                                
"email" => $orderDetails["email"],
                                
"orderContent" => $cartContent,
                                
"order_amount" => $orderDetails["order_amount"]
                        );

                        
$Rates $shippingModule->calculate_shipping_rate$order$shippingAddress,  $shServiceID );

                        if(!
is_array($Rates)){

                                
$Rates = array(array('name'=>'','rate'=>$Rates));
                        }
                }
        }

        if(!
count($Rates))
        {
                
$Rates[] = array('rate'=>'0','name'=>'');
        }

        foreach (
$Rates as $_ind=>$_Rate)
                
$Rates[$_ind]['rate'] += $cartContent["freight_cost"];

        if (
$CALC_TAX)
        {
                if ( 
is_array($addresses[0]) )
                        
$rate taxCalculateTaxByClass2CONF_CALCULATE_TAX_ON_SHIPPING$addresses[0], $addresses[1] );
                else
                        
$rate taxCalculateTaxByClassCONF_CALCULATE_TAX_ON_SHIPPING$addresses[0], $addresses[1] );

                foreach (
$Rates as $_ind=>$_Rate)
                        
$Rates[$_ind]['rate'] += ($Rates[$_ind]['rate']/100)*$rate;
        }

        return 
$Rates;
}

// *****************************************************************************
// Purpose        get discount percent
// Inputs
//                                $cartContent is result of cartGetCartContent function
// Remarks
// Returns
function oaGetDiscountPercent$cartContent$log )
{
        
$price oaGetClearPrice$cartContent );
        
$res dscCalculateDiscount$price$log  );
        return (float) 
$res["discount_percent"];
}

// *****************************************************************************
// Purpose        get order amount (with discount) excluding shipping rate
// Inputs
//                                $cartContent is result of cartGetCartContent function
//                                $addresses array of
//                                                $shippingAddressID,
//                                                $billingAddressID
//                                        OR
//                                                $shippingAddress - array of
//                                                        "countryID"
//                                                        "zoneID"
//                                                $billingAddress - array of
//                                                        "countryID"
//                                                        "zoneID"
// Remarks
// Returns
function oaGetOrderAmountExShippingRate$cartContent$addresses$log$CALC_TAX TRUE )
{
        
$clearPrice oaGetClearPrice$cartContent );
        
$d oaGetDiscountPercent$cartContent$log );
        
$res $clearPrice - ($clearPrice/100)*$d;
        if (
$CALC_TAX)
        {
                
$res += oaGetProductTax$cartContent$d$addresses );
        }
        return 
$res;
}



// *****************************************************************************
// Purpose        get order amount
// Inputs
//                                $cartContent is result of cartGetCartContent function
//                                $addresses array of
//                                                $shippingAddressID,
//                                                $billingAddressID
//                                        OR
//                                                $shippingAddress - array of
//                                                        "countryID"
//                                                        "zoneID"
//                                                $billingAddress - array of
//                                                        "countryID"
//                                                        "zoneID"
// Remarks
// Returns
function oaGetOrderAmount$cartContent$addresses$shippingMethodID$log$orderDetails$CALC_TAX TRUE$shServiceID )
{
        
$Rate oaGetShippingCostTakingIntoTax$cartContent$shippingMethodID$addresses$orderDetails$CALC_TAX$shServiceID );
        
$res oaGetOrderAmountExShippingRate$cartContent$addresses$log$CALC_TAX ) + $Rate[0]['rate'];
        return 
$res;
}

?>
Онлайн: 1
Реклама