%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/admin/ |
| Current File : //home/bitrix/www/bitrix/modules/sale/admin/order_print.php |
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
$crmMode = (defined("BX_PUBLIC_MODE") && BX_PUBLIC_MODE && isset($_REQUEST["CRM_MANAGER_USER_ID"]));
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions == "D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php");
IncludeModuleLangFile(__FILE__);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");
ClearVars();
$ID = IntVal($ID);
if ($ID <= 0)
LocalRedirect("sale_order.php?lang=".LANG.GetFilterParams("filter_", false));
$db_order = CSaleOrder::GetList(Array("ID"=>"DESC"), Array("ID"=>$ID));
if (!$db_order->ExtractFields("str_"))
LocalRedirect("sale_order.php?lang=".LANG.GetFilterParams("filter_", false));
$APPLICATION->SetTitle(GetMessage("SALE_PRINT_RECORD", array("#ID#"=>$ID)));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
global $USER;
$bUserCanViewOrder = false;
$bUserCanEditOrder = false;
$allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesGroupCanDoOperations($USER->GetUserGroupArray(), array('view'));
if(in_array($str_STATUS_ID, $allowedStatusesView))
{
$bUserCanViewOrder = true;
}
$allowedStatusesUpdate = \Bitrix\Sale\OrderStatus::getStatusesGroupCanDoOperations($USER->GetUserGroupArray(), array('update'));
if(in_array($str_STATUS_ID, $allowedStatusesUpdate))
{
$bUserCanEditOrder = true;
}
$errorMessage = "";
if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($Print)>0 && check_bitrix_sessid() && $bUserCanViewOrder)
{
if(count($REPORT_ID) > 0)
{
$sBasket = "";
$sQuantity = "";
$bFirst = True;
$countBasketId = count($BASKET_IDS);
for ($i = 0; $i < $countBasketId; $i++)
{
if (IntVal($BASKET_IDS[$i])<=0)
continue;
$sBasket .= ($bFirst? "": ",").IntVal($BASKET_IDS[$i]);
$sQuantity .= ($bFirst? "": ",").${"QUANTITY_".IntVal($BASKET_IDS[$i])};
$bFirst = false;
}
$urlParams = "BASKET_IDS=".urlencode($sBasket)."&QUANTITIES=".urlencode($sQuantity);
$PROPS_ENABLE = (!isset($_POST["PROPS_ENABLE"]) || $_POST["PROPS_ENABLE"] == N) ? "N" : "Y";
?>
<script language="JavaScript">
<?
$countReportId = count($REPORT_ID);
for ($i = 0; $i < $countReportId; $i++)
{
?>
window.open('/bitrix/admin/sale_print.php?PROPS_ENABLE=<?=$PROPS_ENABLE?>&doc=<?echo CUtil::JSEscape($REPORT_ID[$i]) ?>&ORDER_ID=<?echo $ID ?>&<?=$urlParams?>', '_blank');
<?
}
?>
</script>
<?
}
else
$errorMessage = GetMessage("SOP_ERROR_REPORT");
}
/*********************************************************************/
/******************** BODY *****************************************/
/*********************************************************************/
?>
<?
$aMenu = array(
array(
"TEXT" => GetMessage("SOP_TO_LIST"),
"LINK" => "/bitrix/admin/sale_order.php?lang=".LANGUAGE_ID.GetFilterParams("filter_")
)
);
$aMenu[] = array("SEPARATOR" => "Y");
if ($bUserCanEditOrder)
{
$aMenu[] = array(
"TEXT" => GetMessage("SOP_TO_EDIT"),
"LINK" => "/bitrix/admin/sale_order_edit.php?ID=".$ID."&lang=".LANGUAGE_ID.GetFilterParams("filter_")
);
}
if ($bUserCanViewOrder)
{
$aMenu[] = array(
"TEXT" => GetMessage("SOP_TO_DETAIL"),
"LINK" => "/bitrix/admin/sale_order_view.php?ID=".$ID."&lang=".LANGUAGE_ID.GetFilterParams("filter_")
);
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
if (!$bUserCanViewOrder)
{
CAdminMessage::ShowMessage(str_replace("#ID#", $ID, GetMessage("SOD_NO_PERMS2VIEW")).". ");
}
else
{
CAdminMessage::ShowMessage($errorMessage);
?>
<form method="POST" action="<?echo $APPLICATION->GetCurPage()?>?" name="order_print">
<?echo GetFilterHiddens("filter_");?>
<input type="hidden" name="lang" value="<?echo LANG ?>">
<input type="hidden" name="ID" value="<?echo $ID ?>">
<?=bitrix_sessid_post()?>
<?
$aTabs = array(
array("DIV" => "edit1", "TAB" => GetMessage("SOPN_TAB_PRINT"), "ICON" => "sale", "TITLE" => GetMessage("SOPN_TAB_PRINT_DESCR"))
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$tabControl->Begin();
?>
<?
$tabControl->BeginNextTab();
?>
<tr>
<td><?echo GetMessage("SALE_PR_ORDER_N")?>:</td>
<td><?echo $str_ACCOUNT_NUMBER ?></td>
</tr>
<tr>
<td><?echo GetMessage("P_ORDER_DATE")?>:</td>
<td><?echo $str_DATE_INSERT_FORMAT ?></td>
</tr>
<tr>
<td><?echo GetMessage("P_ORDER_LANG")?>:</td>
<td>
<?
echo "[".$str_LID."] ";
$db_lang = CLang::GetByID($str_LID);
if ($arLang = $db_lang->GetNext())
{
echo $arLang["NAME"];
}
?>
</td>
</tr>
<tr>
<td><?echo GetMessage("P_ORDER_STATUS")?>:</td>
<td>
<?$ar_status = CSaleStatus::GetByID($str_STATUS_ID);?>
[<?echo $ar_status["ID"] ?>] <?echo htmlspecialcharsbx($ar_status["NAME"]) ?>
</td>
</tr>
<tr>
<td>
<?echo GetMessage("P_ORDER_CANCELED")?> / <?echo GetMessage("P_ORDER_PAYED") ?> / <?echo GetMessage("P_ORDER_ALLOW_DELIVERY") ?>:
</td>
<td>
<?
echo (($str_CANCELED=="Y")?"<font color=\"#FF0000\"><b>":"");
echo (($str_CANCELED=="Y") ? GetMessage("SALE_YES") : GetMessage("SALE_NO") );
echo (($str_CANCELED=="Y")?"</b>":"");
?>
/
<?
echo (($str_PAYED=="Y") ? GetMessage("SALE_YES") : GetMessage("SALE_NO") );
?>
/
<?
echo (($str_ALLOW_DELIVERY=="Y") ? GetMessage("SALE_YES") : GetMessage("SALE_NO") );
?>
</td>
</tr>
<tr>
<td><?=GetMessage('SOPN_SELECT_ORDER_PROPS');?>:</td>
<td><input type="checkbox" name="PROPS_ENABLE" value="Y" checked></td>
</tr>
<tr>
<td colspan="2">
<table border="0" cellspacing="1" cellpadding="3" width="100%" class="internal">
<tr class="heading">
<td><?echo GetMessage("SALE_PR_INCLUDE")?></td>
<td><?echo GetMessage("SALE_PR_NAME")?></td>
<td><?echo GetMessage("SALE_PR_QUANTITY")?></td>
<td><?echo GetMessage("SALE_PR_PRICE")?></td>
<td><?echo GetMessage("SALE_PR_SUM")?></td>
</tr>
<?
$db_basket = CSaleBasket::GetList(array('ID' => 'ASC'), array("ORDER_ID"=>$ID));
while ($arBasket = $db_basket->GetNext())
{
?>
<tr>
<td valign="top" style="text-align:center;">
<input type="checkbox" checked name="BASKET_IDS[]" value="<?echo $arBasket["ID"] ?>">
</td>
<td valign="top">
<?echo $arBasket["NAME"];?>
<?
$dbBasketProps = CSaleBasket::GetPropsList(
array("SORT" => "ASC", "NAME" => "ASC"),
array("BASKET_ID" => $arBasket["ID"]),
false,
false,
array("ID", "BASKET_ID", "NAME", "VALUE", "CODE", "SORT")
);
while ($arBasketProps = $dbBasketProps->GetNext())
{
if(strlen($arBasketProps["VALUE"]) > 0 && $arBasketProps["CODE"] != "CATALOG.XML_ID" && $arBasketProps["CODE"] != "PRODUCT.XML_ID")
echo "<div style=\"font-size:8pt\">".$arBasketProps["NAME"].": ".$arBasketProps["VALUE"]."</div>";
}
$arCurFormat = CCurrencyLang::GetCurrencyFormat($arBasket["CURRENCY"]);
$vatString = trim(str_replace("#", '', $arCurFormat["FORMAT_STRING"]));
?>
</td>
<td valign="top" style="text-align:right;">
<input type="text" size="3" name="QUANTITY_<?echo $arBasket["ID"] ?>" value="<?echo $arBasket["QUANTITY"];?>">
</td>
<td valign="top" nowrap style="text-align:right;">
<?=number_format($arBasket["PRICE"], 2, ',', ' ')." ".$vatString?>
</td>
<td valign="top" nowrap style="text-align:right;">
<?=number_format($arBasket["QUANTITY"]*$arBasket["PRICE"], 2, ',', ' ')." ".$vatString?>
</td>
</tr>
<?
}
?>
</table>
</td>
</tr>
<?
$arCurFormat = CCurrencyLang::GetCurrencyFormat($str_CURRENCY);
$vatString = trim(str_replace("#", '', $arCurFormat["FORMAT_STRING"]));
$db_tax_list = CSaleOrderTax::GetList(array("APPLY_ORDER"=>"ASC"), Array("ORDER_ID"=>$ID));
while ($ar_tax_list = $db_tax_list->Fetch())
{
?>
<tr>
<td align="right" width="50%">
<?
echo htmlspecialcharsbx($ar_tax_list["TAX_NAME"]);
if ($ar_tax_list["IS_IN_PRICE"]=="Y")
echo " (".(($ar_tax_list["IS_PERCENT"]=="Y")?"".DoubleVal($ar_tax_list["VALUE"])."%, ":"").GetMessage("SALE_TAX_INPRICE").")";
elseif ($ar_tax_list["IS_PERCENT"]=="Y")
echo " (".DoubleVal($ar_tax_list["VALUE"])."%)";
?>:
</td>
<td align="left" width="50%">
<?=number_format($ar_tax_list["VALUE_MONEY"], 2, ',', ' ')." ".$vatString?>
</td>
</tr>
<?
}
?>
<tr>
<td align="right" width="50%">
<?echo GetMessage("SALE_F_DELIVERY")?>:
</td>
<td align="left" width="50%">
<?=number_format($str_PRICE_DELIVERY, 2, ',', ' ')." ".$vatString?>
</td>
</tr>
<tr>
<td align="right" width="50%"><?echo GetMessage("SALE_F_ITOG")?>:</td>
<td align="left" width="50%">
<?=number_format($str_PRICE, 2, ',', ' ')." ".$vatString?>
</td>
</tr>
<tr>
<td align="right" colspan="2"> </td>
</tr>
<tr>
<td align="right" valign="top"><?echo GetMessage("SALE_PR_SHABLON")?>:</td>
<td>
<select size="5" multiple name="REPORT_ID[]">
<?
$arSysLangs = array();
$db_lang = CLangAdmin::GetList(($b="sort"), ($o="asc"), array("ACTIVE" => "Y"));
while ($arLang = $db_lang->Fetch())
$arSysLangs[] = $arLang["LID"];
$arReports = array();
if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/admin/reports/"))
{
if ($handle = opendir($_SERVER["DOCUMENT_ROOT"]."/bitrix/admin/reports/"))
{
while (($file = readdir($handle)) !== false)
{
if ($file == "." || $file == ".." || $file == ".access.php")
continue;
if (is_file($_SERVER["DOCUMENT_ROOT"]."/bitrix/admin/reports/".$file) && ToUpper(substr($file, -4))==".PHP")
{
$rep_title = $file;
$file_contents = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/bitrix/admin/reports/".$file);
$rep_langs = "";
$arMatches = array();
if (preg_match("#<title([\s]+langs[\s]*=[\s]*\"([^\"]*)\"|)[\s]*>([^<]*)</title[\s]*>#i", $file_contents, $arMatches))
{
$arMatches[3] = Trim($arMatches[3]);
if (strlen($arMatches[3])>0) $rep_title = $arMatches[3];
$arMatches[2] = Trim($arMatches[2]);
if (strlen($arMatches[2])>0) $rep_langs = $arMatches[2];
}
if (strlen($rep_langs)>0)
{
$bContinue = True;
$countarSys = count($arSysLangs);
for ($ic = 0; $ic < $countarSys; $ic++)
{
if (strpos($rep_langs, $arSysLangs[$ic])!==false)
{
$bContinue = False;
break;
}
}
if ($bContinue)
continue;
}
$arReports[$file] = $rep_title;
}
}
}
closedir($handle);
}
if ($handle = opendir($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/reports/"))
{
while (($file = readdir($handle)) !== false)
{
if ($file == "." || $file == ".." || isset($arReports[$file]))
continue;
if (is_file($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/reports/".$file)
&& ToUpper(substr($file, -4))==".PHP"
)
{
$rep_title = $file;
if (is_file($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/ru/reports/".$file))
{
$file_contents = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/ru/reports/".$file);
}
else
{
$file_contents = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/reports/".$file);
}
$rep_langs = "";
$arMatches = array();
if (preg_match("#<title([\s]+langs[\s]*=[\s]*\"([^\"]*)\"|)[\s]*>([^<]*)</title[\s]*>#i", $file_contents, $arMatches))
{
$arMatches[3] = Trim($arMatches[3]);
if (strlen($arMatches[3])>0) $rep_title = $arMatches[3];
$arMatches[2] = Trim($arMatches[2]);
if (strlen($arMatches[2])>0) $rep_langs = $arMatches[2];
}
if (strlen($rep_langs)>0)
{
$bContinue = True;
$countArSysLang = count($arSysLangs);
for ($ic = 0; $ic < $countArSysLang; $ic++)
{
if (strpos($rep_langs, $arSysLangs[$ic])!==false)
{
$bContinue = False;
break;
}
}
if ($bContinue)
continue;
}
$arReports[$file] = $rep_title;
}
}
}
closedir($handle);
foreach ($arReports as $file => $title):?>
<option value="<?echo substr($file, 0, strlen($file)-4); ?>"><?=$title;?></option>
<?endforeach;?>
</select>
</td>
</tr>
<?
$tabControl->EndTab();
?>
<?
$tabControl->Buttons();
?>
<input type="hidden" name="Print" value="<?echo GetMessage("SALE_PRINT")?>">
<?
if (!$crmMode)
{
?><input type="submit" class="button" value="<?echo GetMessage("SALE_PRINT")?>"><?
}
?>
<?
$tabControl->End();
?>
</form>
<?
}
?>
<br>
<?echo BeginNote();?>
<?echo GetMessage("SALE_PR_NOTE1")?><br><br>
<?echo GetMessage("SALE_PR_NOTE2")?><br><br>
<?echo GetMessage("SALE_PR_NOTE3")?><br><br>
<?echo GetMessage("SALE_PR_NOTE4")?><br><br>
<?echo GetMessage("SALE_PR_NOTE5")?>
<?echo EndNote();?>
<?require($DOCUMENT_ROOT."/bitrix/modules/main/include/epilog_admin.php");?>