Наценка 10% на товар , если количество товара взаказе меньше пачки

Отправлено planktun от сб, 04/16/2016 - 07:23

шаблон корзины

 

 

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
CModule::IncludeModule("highloadblock"); // подключить инфоблоки
use Bitrix\Highloadblock as HL;
use Bitrix\Main\Entity; 
$hlblock_id = 1;// id инфоблока
$hlblock = HL\HighloadBlockTable::getById($hlblock_id)->fetch();
 
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();


?>
<div id="id-cart-list">
    <div class="sort">
        <div class="sorttext"><?=GetMessage("SALE_PRD_IN_BASKET")?></div>
        <a href="javascript:void(0)" class="sortbutton current"><?=GetMessage("SALE_PRD_IN_BASKET_ACT")?></a>
        <?if ($countItemsDelay=count($arResult["ITEMS"]["DelDelCanBuy"])):?><a href="javascript:void(0)" onclick="ShowBasketItems(2);" class="sortbutton"><?=GetMessage("SALE_PRD_IN_BASKET_SHELVE")?> (<?=$countItemsDelay?>)</a><?endif?>
        <?if ($countItemsSubscribe=count($arResult["ITEMS"]["ProdSubscribe"])):?><a href="javascript:void(0)" onclick="ShowBasketItems(3);" class="sortbutton"><?=GetMessage("SALE_PRD_IN_BASKET_SUBSCRIBE")?> (<?=$countItemsSubscribe?>)</a><?endif?>
        <?if ($countItemsNotAvailable=count($arResult["ITEMS"]["nAnCanBuy"])):?><a href="javascript:void(0)" onclick="ShowBasketItems(4);" class="sortbutton"><?=GetMessage("SALE_PRD_IN_BASKET_NOTA")?> (<?=$countItemsNotAvailable?>)</a><?endif?>
    </div>
<?$numCells = 0;?>
<table class="equipment mycurrentorders" rules="rows" >
    <thead>
        <tr style="text-align: center;">
            <?if (in_array("NAME", $arParams["COLUMNS_LIST"])):?>
                <td><?= GetMessage("SALE_NAME")?></td>
                <td></td>
                <?$numCells += 2;?>
            <?endif;?>
            <?if (in_array("VAT", $arParams["COLUMNS_LIST"])):?>
                <td><?= GetMessage("SALE_VAT")?></td>
                <?$numCells++;?>
            <?endif;?>
            <?if (in_array("TYPE", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-type"><?= GetMessage("SALE_PRICE_TYPE")?></td>
                <?$numCells++;?>
            <?endif;?>
            
            <?if (in_array("WEIGHT", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-weight"><?= GetMessage("SALE_WEIGHT")?></td>
                <?$numCells++;?>
            <?endif;?>
            <?if (in_array("QUANTITY", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-quantity"><?= GetMessage("SALE_QUANTITY")?></td>
                <?$numCells++;?>
            <?endif;?>
            <td class="cart-item-quantity_item">Кол-во в пачке/ остаток </td>
            <?$numCells++;?>
            <?if (in_array("PRICE", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-price"><?= GetMessage("SALE_PRICE")?></td>
                <?$numCells++;?>
            <?endif;?>
            <?if (in_array("PRICE", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-price">Сумма</td>
                <?$numCells++;?>
            <?endif;?>
            <?if (in_array("DELETE", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-delay"></td>
                <?$numCells++;?>
            <?endif;?>
            <?if (in_array("DELETE", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-delay"></td>
                <?$numCells++;?>
            <?endif;?>
        </tr>
    </thead>
<?if(count($arResult["ITEMS"]["AnDelCanBuy"]) > 0):?>
    <tbody>
    <?
    $i=0;
    $ITOG=0;
//echo print_r($arResult["ITEMS"]["AnDelCanBuy"],true);
    foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItems)
    { 
     //preg_match('/\((.+)\)/', $arBasketItems["NAME"], $in_box);
     //выцепляем количество в пачке
                    $rsData = $entity_data_class::getList(array(
                        "select" => array("*"),
                        "order" => array("ID" => "ASC"),
                        "limit" => 1,
                        "filter" => array('UF_VLADELETS' =>$arBasketItems["PRODUCT_XML_ID"],'UF_NAME'=>'упак'),      
                    ));
                    $arData = $rsData->Fetch();
                    //$QUANTITY=$in_box[1];
                    $QUANTITY=$arData["UF_KOEFFITSIENT"];
                    $ar_res2 = CCatalogProduct::GetByID($arBasketItems["PRODUCT_ID"]);
                    //выцепляем цены 
                    global $DB;
                    $results=$DB->Query("SELECT PRICE FROM b_catalog_price WHERE PRODUCT_ID={$arBasketItems["PRODUCT_ID"]} AND CATALOG_GROUP_ID =4");
                    $name_array=array();
//создаем пустой массив, но можно эту строчку исключить

while ($row = $results->Fetch())
{
echo $row['NAME'];//выводим все значения, которые вернул запрос
array_push($name_array, $row);//если исключили создание массива, то исключите и эту строку, тут мы создаем массив со всеми значениями которые вернул запрос, чтобы потом этот массив использовать в любых целях.
}
//цена
$low_price = $name_array[0]['PRICE'];
                    
        ?>
        <tr>
            <?if (in_array("NAME", $arParams["COLUMNS_LIST"])):?>
                <td>
                    <?if (strlen($arBasketItems["DETAIL_PAGE_URL"])>0):?>
                        <a href="<?=$arBasketItems["DETAIL_PAGE_URL"]?>">
                    <?endif;?>
                    <?if (strlen($arBasketItems["DETAIL_PICTURE"]["SRC"]) > 0) :?>
                        <img src="<?=$arBasketItems["DETAIL_PICTURE"]["SRC"]?>" alt="<?=$arBasketItems["NAME"] ?>"/>
                    <?else:?>
                        <img src="/bitrix/templates/bootstrap/images/no_foto.jpg" ALT='' WIDTH='80px' />
                    <?endif?>
                    <?if (strlen($arBasketItems["DETAIL_PAGE_URL"])>0):?>
                        </a>
                    <?endif;?>
                </td>
                <td class="cart-item-name" style="max-width: 200px;">
                    <?if (strlen($arBasketItems["DETAIL_PAGE_URL"])>0):?>
                        <a href="<?=$arBasketItems["DETAIL_PAGE_URL"]?>">
                    <?endif;?>
                        <?=$arBasketItems["NAME"] ?>
                    <?if (strlen($arBasketItems["DETAIL_PAGE_URL"])>0):?>
                        </a>
                    <?endif;?>
                    <?if (in_array("PROPS", $arParams["COLUMNS_LIST"]))
                    {
                        foreach($arBasketItems["PROPS"] as $val)
                        {
                            echo "<br />!".$val["NAME"].": ".$val["VALUE"];
                        }
                    }?>
                </td>
            <?endif;?>
            <?if (in_array("VAT", $arParams["COLUMNS_LIST"])):?>
                <td><?=$arBasketItems["VAT_RATE_FORMATED"]?></td>
            <?endif;?>
            <?if (in_array("TYPE", $arParams["COLUMNS_LIST"])):?>
                <td><?=$arBasketItems["NOTES"]?></td>
            <?endif;?>
            
            <?if (in_array("WEIGHT", $arParams["COLUMNS_LIST"])):?>
                <td><?=$arBasketItems["WEIGHT_FORMATED"]?></td>
            <?endif;?>
            <?if (in_array("QUANTITY", $arParams["COLUMNS_LIST"])):?>
                <td >
                  
                    <input maxlength="8" type="text" class="basket_quant" name="QUANTITY_<?=$arBasketItems["ID"]?>" value="<? echo $arBasketItems["QUANTITY"];?>" size="3" id="QUANTITY_<?=$arBasketItems["ID"]?>">
                   
                </td>
            <?endif;?>
            <td style="width:150px">
            <?php  echo $QUANTITY,'/',$ar_res2["QUANTITY"]; ?>
            </td>
            <?if (in_array("PRICE", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-price">
                    <?if(doubleval($arBasketItems["FULL_PRICE"]) > 0):?>
                        <div class="discount-price"><?=$arBasketItems["PRICE_FORMATED"]?></div>
                        <div class="old-price"><?=$arBasketItems["FULL_PRICE_FORMATED"]?></div>
                    <?else:?>
                        <div class="price"><?
                            $price = (float)$arBasketItems["PRICE"];
                        if(($arBasketItems["QUANTITY"]/$QUANTITY)<1)
                        {
                      
                            echo $low_price;
                        }
                        else {
                        
                            echo $price;
                        }
                        ?></div>
                    <?endif?>
                </td>
            <?endif;?>
            <?if (in_array("PRICE", $arParams["COLUMNS_LIST"])):?>
                <td class="cart-item-price">
                        <div class="price"> <?
                        
                            $price = (float)$arBasketItems["PRICE"];

                         
                        if((($arBasketItems["QUANTITY"]/$QUANTITY)<1) AND ($ar_res2["QUANTITY"]>=$QUANTITY))
                        {
                            $ITOG+=$low_price*$arBasketItems["QUANTITY"];
                            echo  $low_price*$arBasketItems["QUANTITY"]; 
                        }
                        else {
                            $ITOG+=$price*$arBasketItems["QUANTITY"];
                            echo $price*$arBasketItems["QUANTITY"];
                        }
                        ?> руб. </div>
                </td>
            <?endif;?>
                    <?if (in_array("DELETE", $arParams["COLUMNS_LIST"])):?>
                        <td><a class="deleteitem" href="<?=str_replace("#ID#", $arBasketItems["ID"], $arUrlTempl["delete"])?>" onclick="//return DeleteFromCart(this);" title="<?=GetMessage("SALE_DELETE_PRD")?>"></a></td>
                    <?endif;?>
            <?if (in_array("DELAY", $arParams["COLUMNS_LIST"])):?>
                <td><a class="setaside" href="<?=str_replace("#ID#", $arBasketItems["ID"], $arUrlTempl["delete"])?>"><?=GetMessage("SALE_DELETE")?></a></td>
            <?endif;?>
        </tr>
        <?
        $i++;
    }
    ?>
    </tbody>
</table>
<div class="alert alert-info">
<table class="myorders_itog">
    <tbody>
        <?if ($arParams["HIDE_COUPON"] != "Y"):?>
        <tr>
            <td rowspan="5" class="tal">
                <input class="input_text_style"
                    <?if(empty($arResult["COUPON"])):?>
                        onclick="if (this.value=='<?=GetMessage("SALE_COUPON_VAL")?>')this.value=''; this.style.color='black'"
                        onblur="if (this.value=='') {this.value='<?=GetMessage("SALE_COUPON_VAL")?>'; this.style.color='#a9a9a9'}"
                        style="color:#a9a9a9"
                    <?endif;?>
                        value="<?if(!empty($arResult["COUPON"])):?><?=$arResult["COUPON"]?><?else:?><?=GetMessage("SALE_COUPON_VAL")?><?endif;?>"
                        name="COUPON">
            </td>
        </tr>
        <?endif;?>
        <?if (in_array("WEIGHT", $arParams["COLUMNS_LIST"])):?>
            <tr>
                <td><?echo GetMessage("SALE_ALL_WEIGHT")?>:</td>
                <td><?=$arResult["allWeight_FORMATED"]?></td>
            </tr>
        <?endif;?>
        <?if (doubleval($arResult["DISCOUNT_PRICE"]) > 0):?>
            <tr>
                <td><?echo GetMessage("SALE_CONTENT_DISCOUNT")?><?
                    if (strLen($arResult["DISCOUNT_PERCENT_FORMATED"])>0)
                        echo " (".$arResult["DISCOUNT_PERCENT_FORMATED"].")";?>:
                </td>
                <td><?=$arResult["DISCOUNT_PRICE_FORMATED"]?></td>
            </tr>
        <?endif;?>
        <?if ($arParams['PRICE_VAT_SHOW_VALUE'] == 'Y'):?>
            <tr>
                <td><?echo GetMessage('SALE_VAT_EXCLUDED')?></td>
                <td><?
                echo $ITOG,'руб';
                //=$arResult["allNOVATSum_FORMATED"]
                ?></td>
            </tr>
            <tr>
                <td><?echo GetMessage('SALE_VAT_INCLUDED')?></td>
                <td><?=$arResult["allVATSum_FORMATED"]?></td>
            </tr>
        <?endif;?>
        <tr>
            <td><?= GetMessage("SALE_ITOGO")?>:</td>
            <td><?
            echo $ITOG,'руб';
            //=$arResult["allSum_FORMATED"]
            ?></td>
        </tr>
    </tbody>
</table>
<div class="clearfix"></div>
</div>

<br/>
<table class="w100p" style="border-top:1px solid #d9d9d9;margin-bottom:40px;">
    <tr>
        <td style="padding:30px 2px;" class="tal"><input type="submit" value="<?echo GetMessage("SALE_UPDATE")?>" name="BasketRefresh" class="btn"></td>
        <td style="padding:30px 2px;" class="tar">


            <? $summa = str_replace(" ","",$arResult["allSum_FORMATED"]);
                settype($summa, "integer");
                if($ITOG>=3000):?>
                <input type="submit" value="<?echo GetMessage("SALE_ORDER")?>" name="BasketOrder"  id="basketOrderButton2" class="btn">
            <?else:?>
                Минимальная сумма заказа 3000р.
            <?endif;?>
  

        </td>
    </tr>
</table>
<?else:?>
    <tbody>
        <tr>
            <td colspan="<?=$numCells?>" style="text-align:center">
                <div class="cart-notetext"><?=GetMessage("SALE_NO_ACTIVE_PRD");?></div>
                <a href="<?=SITE_DIR?>" class="bt3"><?=GetMessage("SALE_NO_ACTIVE_PRD_START")?></a><br><br>
            </td>
        </tr>
    </tbody>
</table>
<?endif;?>
</div>
 

 

bitrix.sale.order.ajax/component.php 482  строка цены товара при офрмлении заказа

 

        while ($arItem = $dbBasketItems->GetNext())
        {
            if ($arItem["DELAY"] == "N" && $arItem["CAN_BUY"] == "Y")
            {
                
                 $ar_res = CCatalogProduct::GetByIDEx($arItem["PRODUCT_ID"]);
                 $ar_res2 = CCatalogProduct::GetByID($arItem["PRODUCT_ID"]);
                    //echo print_r($ar_res2 ,true);
                    $QUANTITY = get_quantity($ar_res["XML_ID"]); 
                                    global $DB;
                    $results=$DB->Query("SELECT PRICE FROM b_catalog_price WHERE PRODUCT_ID={$arItem["PRODUCT_ID"]} AND CATALOG_GROUP_ID =4");
                    $name_array=array();
//создаем пустой массив, но можно эту строчку исключить

while ($row = $results->Fetch())
{
echo $row['NAME'];//выводим все значения, которые вернул запрос
array_push($name_array, $row);//если исключили создание массива, то исключите и эту строку, тут мы создаем массив со всеми значениями которые вернул запрос, чтобы потом этот массив использовать в любых целях.
}
//цена
$low_price = $name_array[0]['PRICE'];
                     if((($arItem["QUANTITY"]/$QUANTITY)<1) AND ($ar_res2["QUANTITY"]>=$QUANTITY))
                     {
                         $arItem["PRICE"] = $low_price;
                     }
                     else{
                         $arItem["PRICE"] = roundEx($arItem["PRICE"], SALE_VALUE_PRECISION);
                     }

Теги
files