本文整理汇总了PHP中Bitrix\Sale\Order::setField方法的典型用法代码示例。如果您正苦于以下问题:PHP Order::setField方法的具体用法?PHP Order::setField怎么用?PHP Order::setField使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bitrix\Sale\Order
的用法示例。
在下文中一共展示了Order::setField方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: updateData
/**
* @param Order $order
* @param $payments
* @param bool $canSetPaid
* @return Result
* @throws Main\ArgumentOutOfRangeException
* @throws Main\ObjectNotFoundException
* @throws UserMessageException
*/
public static function updateData(Order &$order, $payments, $canSetPaid = false)
{
global $USER;
$result = new Result();
$data['PAYMENT'] = array();
if (!$order) {
throw new UserMessageException('Order does not exist');
}
foreach ($payments as $payment) {
$paymentId = intval($payment['PAYMENT_ID']);
$isNew = $paymentId <= 0;
$paymentCollection = $order->getPaymentCollection();
/** @var \Bitrix\Sale\Payment $paymentItem */
if ($isNew) {
$paymentItem = $paymentCollection->createItem();
} else {
$paymentItem = $paymentCollection->getItemById($paymentId);
if (!$paymentItem) {
throw new UserMessageException('Payment does not exist');
}
}
self::$defaultFields = $paymentItem->getFieldValues();
$isReturn = isset($payment['IS_RETURN']) && $payment['IS_RETURN'] == 'Y';
/** @var \Bitrix\Sale\PaySystemService $paymentService */
$paymentService = PaySystemService::load($payment['PAY_SYSTEM_ID']);
if (!$paymentService) {
$result->addError(new EntityError(Loc::getMessage('SALE_ORDER_PAYMENT_ERROR_PAYSYSTEM')));
}
$paymentFields = array('PAY_SYSTEM_ID' => $payment['PAY_SYSTEM_ID'], 'COMPANY_ID' => isset($payment['COMPANY_ID']) ? $payment['COMPANY_ID'] : 0, 'SUM' => $payment['SUM'], 'PAY_VOUCHER_NUM' => $payment['PAY_VOUCHER_NUM'], 'PAY_RETURN_NUM' => $payment['PAY_RETURN_NUM'], 'PAY_RETURN_COMMENT' => $payment['PAY_RETURN_COMMENT'], 'COMMENTS' => $payment['COMMENTS'], 'PAY_SYSTEM_NAME' => $paymentService ? $paymentService->getName() : '');
if ($isNew) {
$paymentFields['DATE_BILL'] = new DateTime();
}
if (!empty($payment['PAY_RETURN_DATE'])) {
try {
$paymentFields['PAY_RETURN_DATE'] = new Date($payment['PAY_RETURN_DATE']);
} catch (Main\ObjectException $exception) {
$result->addError(new EntityError(Loc::getMessage('SALE_ORDER_PAYMENT_ERROR_RETURN_DATE_FORMAT')));
}
}
if (!empty($payment['PAY_VOUCHER_DATE'])) {
try {
$paymentFields['PAY_VOUCHER_DATE'] = new Date($payment['PAY_VOUCHER_DATE']);
} catch (Main\ObjectException $exception) {
$result->addError(new EntityError(Loc::getMessage('SALE_ORDER_PAYMENT_ERROR_VOUCHER_DATE_FORMAT')));
}
}
if (isset($payment['RESPONSIBLE_ID'])) {
$paymentFields['RESPONSIBLE_ID'] = !empty($payment['RESPONSIBLE_ID']) ? $payment['RESPONSIBLE_ID'] : $USER->GetID();
if ($payment['RESPONSIBLE_ID'] != $paymentItem->getField('RESPONSIBLE_ID')) {
$paymentFields['DATE_RESPONSIBLE_ID'] = new DateTime();
if (!$isNew) {
$paymentFields['EMP_RESPONSIBLE_ID'] = $USER->GetID();
}
}
}
if ($result->isSuccess()) {
if ($paymentItem->getField('PAID') != $payment['PAID'] && $paymentItem->getField('IS_RETURN') == 'Y') {
$setResult = $paymentItem->setReturn('N');
if (!$setResult->isSuccess()) {
$result->addErrors($setResult->getErrors());
}
}
if ($isReturn && $payment['OPERATION_ID'] == 'RETURN') {
$setResult = $paymentItem->setReturn('Y');
if (!$setResult->isSuccess()) {
$result->addErrors($setResult->getErrors());
}
}
$setResult = $paymentItem->setFields($paymentFields);
if (!$setResult->isSuccess()) {
$result->addErrors($setResult->getErrors());
}
if (!$canSetPaid) {
$setResult = $paymentItem->setPaid($payment['PAID']);
if (!$setResult->isSuccess()) {
$result->addErrors($setResult->getErrors());
}
}
if ($payment['ORDER_STATUS_ID']) {
$order->setField('STATUS_ID', $payment['ORDER_STATUS_ID']);
}
}
$data['PAYMENT'][] = $paymentItem;
}
$result->setData($data);
return $result;
}
示例2: fillOrderFromRequest
/**
* Filling the order data from request
*
* @internal
*
* @param Sale\Order $order Entity order.
* @param array $fields An array of request data.
*
* @return Sale\Result
*/
public static function fillOrderFromRequest(Sale\Order $order, array $fields)
{
global $USER;
$result = new Sale\Result();
if (isset($fields['CANCELED'])) {
if ($order->getId() > 0 && $order->getField('CANCELED') != $fields['CANCELED']) {
if (!\CSaleOrder::CanUserCancelOrder($order->getId(), $USER->GetUserGroupArray(), $USER->GetID())) {
$result->addError(new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_COMPATIBLE_ORDER_CANCEL_NO_PERMISSION'), 'SALE_COMPATIBLE_ORDER_CANCEL_NO_PERMISSION'));
return $result;
}
/** @var Sale\Result $r */
$r = $order->setField('CANCELED', $fields['CANCELED']);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
}
if (isset($fields['MARKED'])) {
if ($order->getId() > 0 && $order->getField('MARKED') != $fields['MARKED']) {
/** @var Sale\Result $r */
$r = $order->setField('MARKED', $fields['MARKED']);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
}
if ($order->getId() > 0 && !empty($fields['ACCOUNT_NUMBER']) && !empty($fields['SITE_ID'])) {
$filter = array('filter' => array('ACCOUNT_NUMBER' => $fields['ACCOUNT_NUMBER'], '!ID' => $order->getId()), 'select' => array('ID'));
if (($res = OrderTable::getList($filter)) && $res->fetch()) {
$result->addError(new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_COMPATIBLE_ORDER_ACCOUNT_NUMBER_ALREADY_EXISTS'), 'SALE_COMPATIBLE_ORDER_ACCOUNT_NUMBER_ALREADY_EXISTS'));
}
}
return $result;
}
示例3: fillSimpleFields
/**
* @param Order $order
* @param array $formData
* @param int $userId
*
* @return \Bitrix\Sale\Result
*/
protected static function fillSimpleFields(Order $order, array $formData, $userId = 0)
{
$result = new \Bitrix\Sale\Result();
if (isset($formData["ORDER"]["RESPONSIBLE_ID"])) {
/** @var \Bitrix\Sale\Result $r */
$r = $order->setField("RESPONSIBLE_ID", $formData["ORDER"]["RESPONSIBLE_ID"]);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
if (isset($formData["PERSON_TYPE_ID"]) && intval($formData["PERSON_TYPE_ID"]) > 0) {
/** @var \Bitrix\Sale\Result $r */
$r = $order->setPersonTypeId(intval($formData['PERSON_TYPE_ID']));
} else {
/** @var \Bitrix\Sale\Result $r */
$r = $order->setPersonTypeId(Blocks\OrderBuyer::getDefaultPersonType($order->getSiteId()));
}
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
if (isset($formData["ORDER"]["COMMENTS"])) {
/** @var \Bitrix\Sale\Result $r */
$r = $order->setField("COMMENTS", $formData["ORDER"]["COMMENTS"]);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
if (isset($formData["USER_DESCRIPTION"])) {
/** @var \Bitrix\Sale\Result $r */
$r = $order->setField("USER_DESCRIPTION", $formData["USER_DESCRIPTION"]);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
if (isset($formData["RESPONSIBLE_ID"])) {
/** @var \Bitrix\Sale\Result $r */
$r = $order->setField("RESPONSIBLE_ID", $formData["RESPONSIBLE_ID"]);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
if (isset($formData["STATUS_ID"]) && strlen($formData["STATUS_ID"]) > 0) {
$statusesList = \Bitrix\Sale\OrderStatus::getAllowedUserStatuses($userId, \Bitrix\Sale\OrderStatus::getInitialStatus());
if (array_key_exists($formData["STATUS_ID"], $statusesList)) {
/** @var \Bitrix\Sale\Result $r */
$r = $order->setField("STATUS_ID", $formData["STATUS_ID"]);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
}
return $result;
}
示例4: fillOrderFromRequest
/**
* Filling the order data from request
*
* @internal
*
* @param Sale\Order $order Entity order.
* @param array $fields An array of request data.
*
* @return Sale\Result
*/
public static function fillOrderFromRequest(Sale\Order $order, array $fields)
{
global $USER;
$result = new Sale\Result();
if (isset($fields['CANCELED'])) {
if ($order->getId() > 0 && $order->getField('CANCELED') != $fields['CANCELED']) {
if (!\CSaleOrder::CanUserCancelOrder($order->getId(), $USER->GetUserGroupArray(), $USER->GetID())) {
$result->addError(new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_COMPATIBLE_ORDER_CANCEL_NO_PERMISSION'), 'SALE_COMPATIBLE_ORDER_CANCEL_NO_PERMISSION'));
return $result;
}
/** @var Sale\Result $r */
$r = $order->setField('CANCELED', $fields['CANCELED']);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
}
if (isset($fields['MARKED'])) {
if ($order->getId() > 0 && $order->getField('MARKED') != $fields['MARKED']) {
if (!\CSaleOrder::CanUserMarkOrder($order->getId(), $USER->GetUserGroupArray(), $USER->GetID())) {
$result->addError(new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_COMPATIBLE_ORDER_MARKED_NO_PERMISSION'), 'SALE_COMPATIBLE_ORDER_MARKED_NO_PERMISSION'));
return $result;
}
/** @var Sale\Result $r */
$r = $order->setField('MARKED', $fields['MARKED']);
if (!$r->isSuccess()) {
$result->addErrors($r->getErrors());
}
}
}
return $result;
}
示例5: fillSimpleFields
/**
* @param Order $order
* @param array $formData
* @param int $userId
* @return Order
* @throws \Bitrix\Main\ArgumentOutOfRangeException
*/
protected static function fillSimpleFields(Order $order, array $formData, $userId = 0)
{
if (isset($formData["ORDER"]["RESPONSIBLE_ID"])) {
$order->setField("RESPONSIBLE_ID", $formData["ORDER"]["RESPONSIBLE_ID"]);
}
if (isset($formData["PERSON_TYPE_ID"]) && $formData["PERSON_TYPE_ID"] > 0) {
$order->setPersonTypeId($formData['PERSON_TYPE_ID']);
}
if (isset($formData["ORDER"]["COMMENTS"])) {
$order->setField("COMMENTS", $formData["ORDER"]["COMMENTS"]);
}
if (isset($formData["USER_DESCRIPTION"])) {
$order->setField("USER_DESCRIPTION", $formData["USER_DESCRIPTION"]);
}
if (isset($formData["RESPONSIBLE_ID"])) {
$order->setField("RESPONSIBLE_ID", $formData["RESPONSIBLE_ID"]);
}
if (isset($formData["STATUS_ID"]) && strlen($formData["STATUS_ID"]) > 0) {
$statusesList = \Bitrix\Sale\OrderStatus::getAllowedUserStatuses($userId, \Bitrix\Sale\OrderStatus::getInitialStatus());
if (array_key_exists($formData["STATUS_ID"], $statusesList)) {
$order->setField("STATUS_ID", $formData["STATUS_ID"]);
}
}
return $order;
}