Your IP : 18.216.203.204
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
/*
Скопируйте этот файл в папку /bitrix/admin/reports и измените по своему усмотрению
$ORDER_ID - ID текущего заказа
$arOrder - массив атрибутов заказа (ID, доставка, стоимость, дата создания и т.д.)
Следующий PHP код:
print_r($arOrder);
выведет на экран содержимое массива $arOrder.
$arOrderProps - массив свойств заказа (вводятся покупателями при оформлении заказа) следующей структуры:
array(
"мнемонический код (или ID если мнемонический код пуст) свойства" => "значение свойства"
)
$arParams - массив из настроек Печатных форм
$arUser - массив из настроек пользователя, совершившего заказ
*/
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=<?=LANG_CHARSET?>">
<title langs="ru">Счет</title>
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p
{margin-right:0cm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0cm;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:595.3pt 841.9pt;
margin:2.0cm 42.5pt 2.0cm 3.0cm;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body bgcolor=white lang=RU style='tab-interval:35.4pt'>
<div class=Section1>
<!-- REPORT BODY -->
<!-- ИЗМЕНИТЕ ЭТОТ ТЕКСТ НА РЕАЛЬНЫЕ ДАННЫЕ ПОСЛЕ КОПИРОВАНИЯ В ПАПКУ /bitrix/admin/reports -->
<p><b>ПОСТАВЩИК:</b>
<?=$arParams["COMPANY_NAME"]?>
<br>
Адрес: <? echo $arParams["COUNTRY"].", ".$arParams["INDEX"].", г. ".$arParams["CITY"].", ".$arParams["ADDRESS"];?><br>
Телефон: <?=$arParams["PHONE"]?><br>
ИНН: <?=$arParams["INN"]?> / КПП: <?=$arParams["KPP"]?><br>
Банковские реквизиты:<br>
р/с <?=$arParams["RSCH"]?> в <?=$arParams["RSCH_BANK"]?> г. <?=$arParams["RSCH_CITY"]?><br>
к/с <?=$arParams["KSCH"]?><br>
БИК <?=$arParams["BIK"]?></p>
<p><b>ЗАКАЗЧИК: </b>
<!-- ИЗМЕНИТЕ КЛЮЧИ МАССИВА $arOrderProps НА РЕАЛЬНЫЕ ПОСЛЕ КОПИРОВАНИЯ В ПАПКУ /bitrix/admin/reports -->
<?
if(empty($arParams))
{
echo "[".$arOrder["USER_ID"]."] ";
$db_user = CUser::GetByID($arOrder["USER_ID"]);
$arUser = $db_user->Fetch();
echo htmlspecialcharsbx($arUser["NAME"])." ".htmlspecialcharsbx($arUser["LAST_NAME"]);
if (strlen($arOrderProps["F_INN"])>0) echo "<br>ИНН: ".$arOrderProps["F_INN"];?>
<br>Адрес:
<?
if (strlen($arOrderProps["F_INDEX"])>0) echo $arOrderProps["F_INDEX"].",";
$arVal = CSaleLocation::GetByID($arOrderProps["F_LOCATION"], "ru");
if(strlen($arVal["COUNTRY_NAME"])>0 && strlen($arVal["CITY_NAME"])>0)
echo htmlspecialcharsbx($arVal["COUNTRY_NAME"]." - ".$arVal["CITY_NAME"]);
elseif(strlen($arVal["COUNTRY_NAME"])>0 || strlen($arVal["CITY_NAME"])>0)
echo htmlspecialcharsbx($arVal["COUNTRY_NAME"].$arVal["CITY_NAME"]);
if (strlen($arOrderProps["F_CITY"])>0) echo ", г. ".$arOrderProps["F_CITY"];
if (strlen($arOrderProps["F_ADDRESS"])>0 && strlen($arOrderProps["F_CITY"])>0)
echo ", ".$arOrderProps["F_ADDRESS"];
elseif(strlen($arOrderProps["F_ADDRESS"])>0)
echo $arOrderProps["F_ADDRESS"];
if (strlen($arOrderProps["F_EMAIL"])>0) echo "<br>E-Mail: ".$arOrderProps["F_EMAIL"];?>
<br>Контактное лицо: <?echo $arOrderProps["F_NAME"];?>
<?
if (strlen($arOrderProps["F_PHONE"])>0)
echo "<br>Телефон: ".$arOrderProps["F_PHONE"];
}
else
{
if(strlen($arParams["BUYER_COMPANY_NAME"]) > 0)
echo $arParams["BUYER_COMPANY_NAME"];
else
echo $arParams["BUYER_LAST_NAME"]." ".$arParams["BUYER_FIRST_NAME"]." ".$arParams["BUYER_SECOND_NAME"];
if (strlen($arParams["BUYER_INN"])>0) echo "<br>ИНН/КПП: ".$arParams["BUYER_INN"]." / ".$arParams["BUYER_KPP"];
echo "<br>Адрес: ".$arParams["BUYER_COUNTRY"].", ".$arParams["BUYER_INDEX"].", г. ".$arParams["BUYER_CITY"].", ".$arParams["BUYER_ADDRESS"];
if (strlen($arParams["BUYER_CONTACT"])>0) echo "<br>Контактное лицо: ".$arParams["BUYER_CONTACT"];
if (strlen($arParams["BUYER_PHONE"])>0)
echo "<br>Телефон: ".$arParams["BUYER_PHONE"];
}
?>
<br>Платежная система:
[<?echo $arOrder["PAY_SYSTEM_ID"];?>]
<?
$arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"]);
echo htmlspecialcharsbx($arPaySys["NAME"]);
?>
</p>
<p><b>СЧЕТ N:</b> <?echo $arOrder["ACCOUNT_NUMBER"]?> от <?echo $arOrder["DATE_INSERT_FORMAT"]?></p>
<?
$priceTotal = 0;
$bUseVat = false;
$arBasketOrder = array();
for ($i = 0, $max = count($arBasketIDs); $i < $max; $i++)
{
$arBasketTmp = CSaleBasket::GetByID($arBasketIDs[$i]);
if (floatval($arBasketTmp["VAT_RATE"]) > 0 )
$bUseVat = true;
$priceTotal += $arBasketTmp["PRICE"]*$arBasketTmp["QUANTITY"];
$arBasketTmp["PROPS"] = array();
if (isset($_GET["PROPS_ENABLE"]) && $_GET["PROPS_ENABLE"] == "Y")
{
$dbBasketProps = CSaleBasket::GetPropsList(
array("SORT" => "ASC", "NAME" => "ASC"),
array("BASKET_ID" => $arBasketTmp["ID"]),
false,
false,
array("ID", "BASKET_ID", "NAME", "VALUE", "CODE", "SORT")
);
while ($arBasketProps = $dbBasketProps->GetNext())
$arBasketTmp["PROPS"][$arBasketProps["ID"]] = $arBasketProps;
}
$arBasketOrder[] = $arBasketTmp;
}
//разбрасываем скидку на заказ по товарам
if (floatval($arOrder["DISCOUNT_VALUE"]) > 0)
{
$arBasketOrder = GetUniformDestribution($arBasketOrder, $arOrder["DISCOUNT_VALUE"], $priceTotal);
}
//налоги
$arTaxList = array();
$db_tax_list = CSaleOrderTax::GetList(array("APPLY_ORDER"=>"ASC"), Array("ORDER_ID" => $ORDER_ID));
$iNds = -1;
$i = 0;
while ($ar_tax_list = $db_tax_list->Fetch())
{
$arTaxList[$i] = $ar_tax_list;
// определяем, какой из налогов - НДС
// НДС должен иметь код NDS, либо необходимо перенести этот шаблон
// в каталог пользовательских шаблонов и исправить
if ($arTaxList[$i]["CODE"] == "NDS")
$iNds = $i;
$i++;
}
//состав заказа
ClearVars("b_");
//$db_basket = CSaleBasket::GetList(($b="NAME"), ($o="ASC"), array("ORDER_ID"=>$ORDER_ID));
//if ($db_basket->ExtractFields("b_")):
$arCurFormat = CCurrencyLang::GetCurrencyFormat($arOrder["CURRENCY"]);
$currency = preg_replace('/(^|[^&])#/', '${1}', $arCurFormat['FORMAT_STRING']);
?>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr bgcolor="#E2E2E2">
<td align="center" style="border: 1pt solid #000000; border-right:none;">№</td>
<td align="center" style="border: 1pt solid #000000; border-right:none;">Предмет счета</td>
<td nowrap align="center" style="border: 1pt solid #000000; border-right:none;">Кол-во</td>
<td nowrap align="center" style="border: 1pt solid #000000; border-right:none;">Цена,<?=$currency;?></td>
<td nowrap align="center" style="border: 1pt solid #000000;">Сумма,<?=$currency;?></td>
</tr>
<?
$n = 1;
$sum = 0.00;
$arTax = array("VAT_RATE" => 0, "TAX_RATE" => 0);
$mi = 0;
$total_sum = 0;
foreach ($arBasketOrder as $arBasket)
{
$nds_val = 0;
$taxRate = 0;
if (floatval($arQuantities[$mi]) <= 0)
$arQuantities[$mi] = DoubleVal($arBasket["QUANTITY"]);
$b_AMOUNT = DoubleVal($arBasket["PRICE"]);
//определяем начальную цену
$item_price = $b_AMOUNT;
if(DoubleVal($arBasket["VAT_RATE"]) > 0)
{
$bVat = true;
$nds_val = ($b_AMOUNT - DoubleVal($b_AMOUNT/(1+$arBasket["VAT_RATE"])));
$item_price = $b_AMOUNT - $nds_val;
$taxRate = $arBasket["VAT_RATE"]*100;
}
elseif(!$bUseVat)
{
$basket_tax = CSaleOrderTax::CountTaxes($b_AMOUNT*$arQuantities[$mi], $arTaxList, $arOrder["CURRENCY"]);
for ($i = 0, $max = count($arTaxList); $i < $max; $i++)
{
if ($arTaxList[$i]["IS_IN_PRICE"] == "Y")
{
$item_price -= $arTaxList[$i]["TAX_VAL"];
}
$nds_val += DoubleVal($arTaxList[$i]["TAX_VAL"]);
$taxRate += ($arTaxList[$i]["VALUE"]);
}
}
$total_nds += $nds_val*$arQuantities[$mi];
?>
<tr valign="top">
<td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo $n++ ?>
</td>
<td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo $arBasket["NAME"]; ?>
<?
if (is_array($arBasket["PROPS"]) && $_GET["PROPS_ENABLE"] == "Y")
{
foreach($arBasket["PROPS"] as $vv)
{
if(strlen($vv["VALUE"]) > 0 && $vv["CODE"] != "CATALOG.XML_ID" && $vv["CODE"] != "PRODUCT.XML_ID")
echo "<div style=\"font-size:8pt\">".$vv["NAME"].": ".$vv["VALUE"]."</div>";
}
}
?>
</td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo Bitrix\Sale\BasketItem::formatQuantity($arQuantities[$mi]); ?>
</td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo number_format($arBasket["PRICE"], 2, ',', ' ') ?>
</td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-top:none;">
<?echo number_format(($arBasket["PRICE"])*$arQuantities[$mi], 2, ',', ' ') ?>
</td>
</tr>
<?
$total_sum += $arBasket["PRICE"]*$arQuantities[$mi];
$mi++;
}//endforeach
?>
<?if (False && DoubleVal($arOrder["DISCOUNT_VALUE"])>0):?>
<tr>
<td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo $n++?>
</td>
<td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
Скидка
</td>
<td valign="top" align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">1 </td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo number_format($arOrder["DISCOUNT_VALUE"], 2, ',', ' ') ?>
</td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-top:none;">
<?echo number_format($arOrder["DISCOUNT_VALUE"], 2, ',', ' ') ?>
</td>
</tr>
<?endif?>
<?if (DoubleVal($arOrder["PRICE_DELIVERY"])>0):?>
<tr>
<td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo $n?>
</td>
<td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
Доставка <?
$res = \Bitrix\Sale\Delivery\Services\Table::getList(array(
'filter' => array(
'=CODE' => $arOrder["DELIVERY_ID"]
)
));
if ($deliveryService = $res->fetch())
if(strlen($deliveryService["NAME"]) > 0)
echo "(".htmlspecialcharsEx($deliveryService["NAME"]).")";
$basket_tax = CSaleOrderTax::CountTaxes(DoubleVal($arOrder["PRICE_DELIVERY"]), $arTaxList, $arOrder["CURRENCY"]);
$nds_val = 0;
$item_price = DoubleVal($arOrder["PRICE_DELIVERY"]);
for ($i = 0, $max = count($arTaxList); $i < $max; $i++)
{
if ($arTaxList[$i]["IS_IN_PRICE"] == "Y")
{
$item_price -= $arTaxList[$i]["TAX_VAL"];
}
$nds_val += ($arTaxList[$i]["TAX_VAL"]);
$total_nds += $nds_val;
}
$total_sum += $nds_val+$item_price
?>
</td>
<td valign="top" align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">1 </td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?echo number_format($arOrder["PRICE_DELIVERY"], 2, ',', ' ') ?>
</td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-top:none;">
<?echo number_format($arOrder["PRICE_DELIVERY"], 2, ',', ' ') ?>
</td>
</tr>
<?endif?>
<?
$db_tax_list = CSaleOrderTax::GetList(array("APPLY_ORDER"=>"ASC"), Array("ORDER_ID"=>$ORDER_ID));
while ($ar_tax_list = $db_tax_list->Fetch())
{
?>
<tr>
<td align="right" bgcolor="#ffffff" colspan="4" style="border: 1pt solid #000000; border-right:none; border-top:none;">
<?
if ($ar_tax_list["IS_IN_PRICE"]=="Y")
{
echo "В том числе ";
}
echo htmlspecialcharsbx($ar_tax_list["TAX_NAME"]);
if ($ar_tax_list["IS_PERCENT"]=="Y")
{
echo " (".$ar_tax_list["VALUE"]."%)";
}
?>:
</td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-top:none;">
<?=number_format($total_nds, 2, ',', ' ')?>
</td>
</tr>
<?
}
?>
<tr>
<td align="right" bgcolor="#ffffff" colspan="4" style="border: 1pt solid #000000; border-right:none; border-top:none;">Итого:</td>
<td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-top:none;"><?echo number_format($total_sum, 2, ',', ' ') ?></td>
</tr>
</table>
<?//endif?>
<p><b>Итого к оплате:</b>
<?
if ($arOrder["CURRENCY"]=="RUR" || $arOrder["CURRENCY"]=="RUB")
{
echo Number2Word_Rus($arOrder["PRICE"]);
}
else
{
echo SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]);
}
?>.</p>
<?
if ($arOrder['CURRENCY'] === 'UAH')
$contextCurrency = 'гривнах';
else
$contextCurrency = 'рублях';
?>
<p><font size="2">В случае непоступления средств на расчетный счет продавца в течение пяти
банковских дней со дня выписки счета, продавец оставляет за собой право
пересмотреть отпускную цену товара в <?=$contextCurrency;?> пропорционально изменению курса доллара
и выставить счет на доплату.<br><br>
В платежном поручении обязательно указать - "Оплата по счету № <?echo $arOrder["ACCOUNT_NUMBER"]?> от <?echo $arOrder["DATE_INSERT_FORMAT"] ?>".<br><br>
Получение товара только после прихода денег на расчетный счет компании.
</font></p>
<!-- END REPORT BODY -->
<p> </p>
<table border=0 cellspacing=0 cellpadding=0 width="100%">
<tr>
<td width="20%">
<p class=MsoNormal>Руководитель организации:</p>
</td>
<td width="80%">
<p class=MsoNormal>_______________ <input size="55" style="border:0px solid #000000;font-size:14px;font-style:bold;" type="text" value="/ <?echo ((strlen($arParams["DIRECTOR"]) > 0) ? $arParams["DIRECTOR"] : "______________________________")?> /"></p>
</td>
</tr>
<tr>
<td>
<p class=MsoNormal> </p>
</td>
<td>
<p class=MsoNormal> </p>
</td>
</tr>
<tr>
<td>
<p class=MsoNormal> </p>
</td>
<td>
<p class=MsoNormal> </p>
</td>
</tr>
<tr>
<td>
<p class=MsoNormal>Гл. бухгалтер:</p>
</td>
<td>
<p class=MsoNormal>_______________ <input size="45" style="border:0px solid #000000;font-size:14px;font-style:bold;" type="text" value="/ <?echo ((strlen($arParams["BUHG"]) > 0) ? $arParams["BUHG"] : "______________________________")?> /"></p>
</td>
</tr>
</table>
</div>
</body>
</html>