%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/admin/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/admin/cashbox_check.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); use Bitrix\Main\Localization\Loc; use Bitrix\Sale\Cashbox\Internals; use Bitrix\Sale\Cashbox; use Bitrix\Main\Page; use Bitrix\Sale\Payment; use Bitrix\Sale\Shipment; use Bitrix\Sale\Internals\StatusTable; $publicMode = $adminPage->publicMode; $selfFolderUrl = $adminPage->getSelfFolderUrl(); $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if ($saleModulePermissions < "W") $APPLICATION->AuthForm(GetMessage("SALE_ACCESS_DENIED")); IncludeModuleLangFile(__FILE__); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php"); Page\Asset::getInstance()->addJs("/bitrix/js/sale/cashbox.js"); \Bitrix\Main\Loader::includeModule('sale'); $tableId = "tbl_sale_cashbox_check"; $instance = \Bitrix\Main\Application::getInstance(); $context = $instance->getContext(); $request = $context->getRequest(); $oSort = new CAdminSorting($tableId, "ID", "asc"); $lAdmin = new CAdminUiList($tableId, $oSort); if (($ids = $lAdmin->GroupAction()) && $saleModulePermissions >= "W") { foreach ($ids as $id) { if (empty($id)) continue; if ($_REQUEST['action'] === 'delete') { $check = Internals\CashboxCheckTable::getRowById($id); if ($check['STATUS'] == 'E' || $check['STATUS'] == 'N') { Internals\CashboxCheckTable::delete($id); } else { $lAdmin->AddGroupError(Loc::getMessage('SALE_CHECK_DELETE_ERR_INCORRECT_STATUS'), $id); } } elseif ($_REQUEST['action'] === 'check_status') { $check = Cashbox\CheckManager::getObjectById($id); $cashbox = Cashbox\Manager::getObjectById($check->getField('CASHBOX_ID')); if ($cashbox->isCheckable()) { $r = $cashbox->check($check); if (!$r->isSuccess()) $lAdmin->AddGroupError(implode("\n", $r->getErrorMessages()), $id); } } } if ($lAdmin->hasGroupErrors()) { $adminSidePanelHelper->sendJsonErrorResponse($lAdmin->getGroupErrors()); } else { $adminSidePanelHelper->sendSuccessResponse(); } } $cashBox = array(); $cashBoxQueryObject = Internals\CashboxTable::getList(); while ($item = $cashBoxQueryObject->fetch()) { $cashBox[$item['ID']] = $item['NAME']; } $statusesList = array( 'N' => Loc::getMessage('SALE_CASHBOX_STATUS_N'), 'P' => Loc::getMessage('SALE_CASHBOX_STATUS_P'), 'Y' => Loc::getMessage('SALE_CASHBOX_STATUS_Y'), 'E' => Loc::getMessage('SALE_CASHBOX_STATUS_E') ); $filterFields = array( array( "id" => "CASHBOX_ID", "name" => GetMessage("SALE_F_CASHBOX"), "type" => "list", "items" => $cashBox, "filterable" => "", "default" => true ), array( "id" => "ID", "name" => GetMessage("SALE_CHECK_ID"), "type" => "number", "filterable" => "" ), array( "id" => "DATE_CREATE", "name" => GetMessage("MAIN_F_TIMESTAMP"), "type" => "date", ), array( "id" => "ORDER_ID", "name" => GetMessage("SALE_F_ORDER_ID"), "type" => "number", "filterable" => "", "quickSearch" => "" ), array( "id" => "STATUS", "name" => GetMessage("SALE_CASHBOX_STATUS"), "type" => "list", "items" => $statusesList, "filterable" => "", "params" => array("multiple" => "Y"), ), ); $filter = array(); $lAdmin->AddFilter($filterFields, $filter); $params = array( 'filter' => $filter ); global $by, $order; $by = isset($by) ? $by : "ID"; $order = isset($order) ? $order : "ASC"; $params['order'] = array($by => $order); $dbResultList = new CAdminUiResult(Internals\CashboxCheckTable::getList($params), $tableId); $dbResultList->NavStart(); $headers = array( array("id" => "ID", "content" => GetMessage("SALE_CASHBOX_ID"), "sort" => "ID", "default" => true), array("id" => "CHECK_TYPE", "content" => GetMessage("SALE_CASHBOX_CHECK_TYPE"), "sort" => "TYPE", "default" => true), array("id" => "ORDER_ID", "content" => GetMessage("SALE_CASHBOX_ORDER_ID"), "sort" => "ORDER_ID", "default" => true), array("id" => "CASHBOX_ID", "content" => GetMessage("SALE_CASHBOX_CASHBOX_ID"), "sort" => "CASHBOX_ID", "default" => true), array("id" => "DATE_CREATE", "content" => GetMessage("SALE_CASHBOX_DATE_CREATE"), "sort" => "DATE_CREATE", "default" => true), array("id" => "SUM", "content" => GetMessage("SALE_CASHBOX_SUM"), "sort" => "SUM", "default" => true), array("id" => "LINK_PARAMS", "content" => GetMessage("SALE_CASHBOX_LINK"), "default" => true), array("id" => "STATUS", "content" => GetMessage("SALE_CASHBOX_STATUS"), "sort" => "STATUS", "default" => true), array("id" => "PAYMENT", "content" => GetMessage("SALE_CASHBOX_PAYMENT_DESCR"), "sort" => "PAYMENT_ID", "default" => true), array("id" => "SHIPMENT", "content" => GetMessage("SALE_CASHBOX_SHIPMENT_DESCR"), "sort" => "SHIPMENT_ID", "default" => true), array("id" => "PAYMENT_ID", "content" => GetMessage("SALE_CASHBOX_PAYMENT_ID"), "sort" => "PAYMENT_ID", "default" => false), array("id" => "SHIPMENT_ID", "content" => GetMessage("SALE_CASHBOX_SHIPMENT_ID"), "sort" => "SHIPMENT_ID", "default" => false), ); $lAdmin->SetNavigationParams($dbResultList, array("BASE_LINK" => $selfFolderUrl."sale_cashbox_check.php")); $lAdmin->AddHeaders($headers); $visibleHeaders = $lAdmin->GetVisibleHeaderColumns(); $cashboxList = array(); $dbRes = Internals\CashboxTable::getList(); while ($item = $dbRes->fetch()) $cashboxList[$item['ID']] = $item; $tempResult = clone($dbResultList); $paymentIdList = array(); $shipmentIdList = array(); $shipmentStatuses = array(); $paymentRows = array(); $shipmentRows = array(); $relatedEntities = array(); while ($check = $tempResult->Fetch()) { $paymentIdList[] = $check['PAYMENT_ID']; $shipmentIdList[] = $check['SHIPMENT_ID']; $relatedDbRes = Internals\CheckRelatedEntitiesTable::getList(array( 'filter' => array('=CHECK_ID' => $check['ID']) )); while ($data = $relatedDbRes->fetch()) { if ($data['ENTITY_TYPE'] === Internals\CheckRelatedEntitiesTable::ENTITY_TYPE_SHIPMENT) { $shipmentIdList[] = $data['ENTITY_ID']; $relatedEntities[$data['CHECK_ID']][Internals\CheckRelatedEntitiesTable::ENTITY_TYPE_SHIPMENT][] = $data['ENTITY_ID']; } elseif ($data['ENTITY_TYPE'] === Internals\CheckRelatedEntitiesTable::ENTITY_TYPE_PAYMENT) { $paymentIdList[] = $data['ENTITY_ID']; $relatedEntities[$data['CHECK_ID']][Internals\CheckRelatedEntitiesTable::ENTITY_TYPE_PAYMENT][] = $data['ENTITY_ID']; } } } $paymentIdList = array_unique($paymentIdList); $shipmentIdList = array_unique($shipmentIdList); unset($tempResult); $paymentData = Payment::getList( array( 'select' => array('ID', 'ORDER_ID', 'PAY_SYSTEM_NAME', 'PAID', 'PS_STATUS', 'SUM', 'CURRENCY'), 'filter' => array('=ID' => $paymentIdList) ) ); while ($payment = $paymentData->fetch()) { $linkIdUrl = $selfFolderUrl."sale_order_payment_edit.php?order_id=".$payment["ORDER_ID"]."&payment_id=".$payment["ID"]."&lang=".LANGUAGE_ID; if ($publicMode) { $linkIdUrl = "/shop/orders/payment/details/".$payment["ID"]."/"; } $linkId = '[<a href="'.$linkIdUrl.'">'.$payment["ID"].'</a>]'; $paymentRows[$payment['ID']] = $linkId.','.htmlspecialcharsbx($payment["PAY_SYSTEM_NAME"]).','. ($payment["PAID"] == "Y" ? Loc::getMessage("SALE_CHECK_PAYMENTS_PAID") : Loc::getMessage("SALE_CHECK_PAYMENTS_UNPAID")).", ". (strlen($payment["PS_STATUS"]) > 0 ? Loc::getMessage("SALE_CASHBOX_STATUS").": ".htmlspecialcharsbx($payment["PS_STATUS"]).", " : ""). '<span style="white-space:nowrap;">'.htmlspecialcharsbx(SaleFormatCurrency($payment["SUM"], $payment["CURRENCY"])).'</span>'; } if (empty($shipmentStatuses)) { $dbRes = StatusTable::getList(array( 'select' => array('ID', 'NAME' => 'Bitrix\Sale\Internals\StatusLangTable:STATUS.NAME'), 'filter' => array( '=Bitrix\Sale\Internals\StatusLangTable:STATUS.LID' => LANGUAGE_ID, '=TYPE' => 'D' ), )); while ($shipmentStatus = $dbRes->fetch()) $shipmentStatuses[$shipmentStatus["ID"]] = $shipmentStatus["NAME"]." [".$shipmentStatus["ID"]."]"; } $shipmentData = Shipment::getList( array( 'filter' => array('=ID' => $shipmentIdList) ) ); while ($shipment = $shipmentData->fetch()) { $linkIdUrl = $selfFolderUrl."sale_order_shipment_edit.php?order_id=".$shipment["ORDER_ID"]."&shipment_id=".$shipment["ID"]."&lang=".LANGUAGE_ID; if ($publicMode) { $linkIdUrl = "/shop/orders/shipment/details/".$shipment["ID"]."/"; } $linkId = '[<a href="'.$linkIdUrl.'">'.$shipment["ID"].'</a>]'; $fieldValue = $linkId.", ". (strlen($shipment["DELIVERY_NAME"]) > 0 ? htmlspecialcharsbx($shipment["DELIVERY_NAME"]).",</br> " : ""). '<span style="white-space:nowrap;">'.htmlspecialcharsbx(SaleFormatCurrency($shipment["PRICE_DELIVERY"], $shipment["CURRENCY"]))."</span>, ". ($shipment["ALLOW_DELIVERY"] == "Y" ? Loc::getMessage("SALE_CASHBOX_ALLOW_DELIVERY") : Loc::getMessage("SALE_CASHBOX_NOT_ALLOW_DELIVERY")).", ". ($shipment["CANCELED"] == "Y" ? Loc::getMessage("SALE_CASHBOX_CANCELED").", " : ""). ($shipment["DEDUCTED"] == "Y" ? Loc::getMessage("SALE_CASHBOX_DEDUCTED").", " : ""). ($shipment["MARKED"] == "Y" ? Loc::getMessage("SALE_CASHBOX_MARKED").", " : ""); if(strlen($shipment["STATUS_ID"]) > 0) $fieldValue .= "<br>".($shipmentStatuses[$shipment["STATUS_ID"]] ? htmlspecialcharsbx($shipmentStatuses[$shipment["STATUS_ID"]]) : Loc::getMessage("SALE_CASHBOX_STATUS").": ".$shipment["STATUS_ID"]); $shipmentRows[$shipment['ID']] = $fieldValue; } $checkTypeMap = Cashbox\CheckManager::getCheckTypeMap(); while ($check = $dbResultList->Fetch()) { $row =& $lAdmin->AddRow($check['ID'], $check, false, GetMessage("SALE_EDIT_DESCR")); $row->AddField("ID", $check['ID']); $checkClass = $checkTypeMap[$check['TYPE']]; $checkName = class_exists($checkClass) ? $checkClass::getName() : ''; $row->AddField("CHECK_TYPE", $checkName); $orderIdUrl = "sale_order_view.php?ID=".(int)$check['ORDER_ID']."&lang=".LANGUAGE_ID; if ($publicMode) { $orderIdUrl = "/shop/orders/details/".(int)$check['ORDER_ID']."/"; } $row->AddField("ORDER_ID", "<a href=\"".$orderIdUrl."\">".(int)$check['ORDER_ID']."</a>"); $paymentIdField = ''; if ($check['PAYMENT_ID'] > 0) { $paymentIdUrl = "sale_order_payment_edit.php?order_id=".(int)$check['ORDER_ID']."&payment_id=".(int)$check['PAYMENT_ID']."&lang=".LANGUAGE_ID; if ($publicMode) { $paymentIdUrl = "/shop/orders/payment/details/".(int)$check['PAYMENT_ID']."/"; } $paymentIdField = "<a href=\"".$paymentIdUrl."\">".(int)$check['PAYMENT_ID']."</a>"; } if ($relatedEntities[$check['ID']]['P']) { foreach ($relatedEntities[$check['ID']]['P'] as $entityId) { if ($paymentIdField) $paymentIdField .= "<br>"; $paymentIdUrl = "sale_order_payment_edit.php?order_id=".(int)$check["ORDER_ID"]."&payment_id=".$entityId."&lang=".LANGUAGE_ID; if ($publicMode) { $paymentIdUrl = "/shop/orders/payment/details/".$entityId."/"; } $paymentIdField .= "<a href=\"".$paymentIdUrl."\">".(int)$entityId."</a>"; } } $row->AddField("PAYMENT_ID", $paymentIdField); $paymentField = $paymentRows[(int)$check['PAYMENT_ID']]; if ($relatedEntities[$check['ID']]['P']) { foreach ($relatedEntities[$check['ID']]['P'] as $entityId) { if ($paymentField) $paymentField .= "<br>"; $paymentField .= $paymentRows[(int)$entityId]; } } $row->AddField("PAYMENT", $paymentField); $shipmentIdField = ''; if ($check['SHIPMENT_ID'] > 0) { $shipmentIdUrl = "sale_order_shipment_edit.php?order_id=".(int)$check['ORDER_ID']."&shipment_id=".(int)$check['SHIPMENT_ID']."&lang=".LANGUAGE_ID; if ($publicMode) { $shipmentIdUrl = "/shop/orders/shipment/details/".(int)$check['SHIPMENT_ID']."/"; } $shipmentIdField .= "<a href=\"".$shipmentIdUrl."\">".(int)$check['SHIPMENT_ID']."</a>"; } if ($relatedEntities[$check['ID']]['S']) { foreach ($relatedEntities[$check['ID']]['S'] as $entityId) { if ($shipmentIdField) $shipmentIdField .= "<br>"; $shipmentIdUrl = "sale_order_shipment_edit.php?order_id=".(int)$check['ORDER_ID']."&shipment_id=".(int)$entityId."&lang=".LANGUAGE_ID; if ($publicMode) { $shipmentIdUrl = "/shop/orders/shipment/details/".(int)$entityId."/"; } $shipmentIdField .= "<a href=\"".$shipmentIdUrl."\">".(int)$entityId."</a>"; } } $row->AddField("SHIPMENT_ID", $shipmentIdField); $shipmentField = $shipmentRows[(int)$check['SHIPMENT_ID']]; if ($relatedEntities[$check['ID']]['S']) { foreach ($relatedEntities[$check['ID']]['S'] as $entityId) { if ($shipmentField) $shipmentField .= "<br>"; $shipmentField .= $shipmentRows[(int)$entityId]; } } $row->AddField("SHIPMENT", $shipmentField); $row->AddField("DATE_CREATE", $check['DATE_CREATE']); $row->AddField("SUM", SaleFormatCurrency($check['SUM'], $check['CURRENCY'])); $row->AddField("CASHBOX_ID", htmlspecialcharsbx($cashboxList[$check['CASHBOX_ID']]['NAME'])); $cashbox = null; $checkLink = ''; if ($check['CASHBOX_ID'] > 0) { $cashbox = \Bitrix\Sale\Cashbox\Manager::getObjectById($check['CASHBOX_ID']); if ($cashbox && is_array($check['LINK_PARAMS'])) { $link = $cashbox->getCheckLink($check['LINK_PARAMS']); if ($link) $checkLink = '<a href="'.$link.'" target="_blank">'.Loc::getMessage('SALE_CHECK_LOOK').'</a>'; } } $row->AddField("LINK_PARAMS", $checkLink); $row->AddField("STATUS", Loc::getMessage('SALE_CASHBOX_STATUS_'.$check['STATUS'])); $arActions = array(); if ($check['STATUS'] === 'E' || $check['STATUS'] == 'N') { $arActions[] = array( "ICON" => "delete", "TEXT" => GetMessage("SALE_CHECK_DELETE"), "ACTION" => "if(confirm('".Loc::getMessage('SALE_CHECK_DELETE_CONFIRM', array('#CHECK_ID#' => $check['ID']))."')) ".$lAdmin->ActionDoGroup($check["ID"], "delete") ); } if ($check['STATUS'] === 'P' && $cashbox && $cashbox->isCheckable() ) { $arActions[] = array( "ICON" => "check_status", "TEXT" => GetMessage("SALE_CHECK_CHECK_STATUS"), "ACTION" => $lAdmin->ActionDoGroup($check["ID"], "check_status", GetFilterParams()) ); } if ($arActions) $row->AddActions($arActions); } $dbRes = Internals\CashboxTable::getList(array('filter' => array('=ACTIVE' => 'Y', '=ENABLED' => 'Y'))); if ($saleModulePermissions == "W" && $dbRes->fetch()) { if ($publicMode) { $aContext = array(); } else { $aContext = array( array( "TEXT" => GetMessage("SALE_CASHBOX_ADD_NEW"), "TITLE" => GetMessage("SALE_CASHBOX_ADD_NEW"), "ICON" => "btn_new", 'ONCLICK' => "BX.Sale.Cashbox.showCreateCheckWindow()" ) ); } $lAdmin->setContextSettings(array("pagePath" => $selfFolderUrl."sale_cashbox_check.php")); $lAdmin->AddAdminContextMenu($aContext); } $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("SALE_CASHBOX_CHECK_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?> <script language="JavaScript"> BX.message( { CASHBOX_CREATE_WINDOW_NOT_SELECT: '<?=Loc::getMessage("CASHBOX_CREATE_WINDOW_NOT_SELECT")?>', CASHBOX_CREATE_WINDOW_TITLE: '<?=Loc::getMessage("CASHBOX_CREATE_WINDOW_TITLE")?>', CASHBOX_ADD_CHECK_INPUT_ORDER: '<?=Loc::getMessage("CASHBOX_ADD_CHECK_INPUT_ORDER")?>', CASHBOX_ADD_CHECK_TITLE: '<?=Loc::getMessage("CASHBOX_ADD_CHECK_TITLE")?>', CASHBOX_ADD_CHECK_OPTGROUP_PAYMENTS: '<?=Loc::getMessage("SALE_CASHBOX_ADD_CHECK_OPTGROUP_PAYMENTS")?>', CASHBOX_ADD_CHECK_OPTGROUP_SHIPMENTS: '<?=Loc::getMessage("SALE_CASHBOX_ADD_CHECK_OPTGROUP_SHIPMENTS")?>', CASHBOX_ADD_CHECK_PAYMENT: '<?=Loc::getMessage("SALE_CASHBOX_ADD_CHECK_PAYMENT")?>', CASHBOX_ADD_CHECK_SHIPMENT: '<?=Loc::getMessage("SALE_CASHBOX_ADD_CHECK_SHIPMENT")?>', CASHBOX_ADD_CHECK_ENTITIES: '<?=Loc::getMessage("SALE_CASHBOX_ADD_CHECK_ENTITIES")?>', CASHBOX_ADD_CHECK_TYPE_CHECKS: '<?=Loc::getMessage("SALE_CASHBOX_ADD_CHECK_TYPE_CHECKS")?>', CASHBOX_ADD_CHECK_ADDITIONAL_ENTITIES: '<?=Loc::getMessage("SALE_CASHBOX_ADD_CHECK_ADDITIONAL_ENTITIES")?>' } ); </script> <? $lAdmin->DisplayFilter($filterFields); $lAdmin->DisplayList(); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>