crm.invoice.update
Scope: crm Права на выполнение: для всех
crm.invoice.update(id, fields)
Обновляет существующий счёт.
Параметры
Параметр | Описание |
---|---|
id | Идентификатор счета. |
fields | Набор полей - массив вида array("обновляемое поле"=>"значение"[, ...]), где "обновляемое поле" может принимать значения из возвращаемых методом crm.invoice.fields.
Примечание: чтобы узнать требуемый формат полей, выполните метод crm.invoice.fields и посмотрите формат пришедших значений этих полей.
|
Пример
// Добавление или обновление товара в счёте. var current = new Date(); var date2str = function(d) { return d.getFullYear() + '-' + paddatepart(1 + d.getMonth()) + '-' + paddatepart(d.getDate()) + 'T' + paddatepart(d.getHours()) + ':' + paddatepart(d.getMinutes()) + ':' + paddatepart(d.getSeconds()) + '+03:00'; }; var paddatepart = function(part) { return part >= 10 ? part.toString() : '0' + part.toString(); }; var id = prompt("Введите ID"); BX24.callMethod('crm.invoice.get', {"id": id}, addProduct); function addProduct(result) { if(result.error()) console.error(result.error()); else { var fields = clone(result.data()); var n = fields['PRODUCT_ROWS'].length; var productUpdated = false; // Изменение поля "Дата выставления" fields["DATE_BILL"] = date2str(current); // Изменение поля "Комментарий (отобразится в счёте)" fields["USER_DESCRIPTION"] = "Комментарий для клиента (обновлённый)."; // Если товар с ID 703 есть в счёте, то обновляем его поля. // Если товара с ID 703 в счёте нет, то добавляем его в счёт. // Если используется НДС, то читается что цена его включает, а сам признак включения НДС в цену будет // взят из каталога. for (var i in fields['PRODUCT_ROWS']) { if (fields['PRODUCT_ROWS'][i]["PRODUCT_ID"] == 703) { var rowId = fields['PRODUCT_ROWS'][i]["ID"] fields['PRODUCT_ROWS'][i] = { "ID": rowId, "PRODUCT_ID": 703, "QUANTITY": 4, "PRICE": 779.60 }; productUpdated = true; break; } } if (!productUpdated && n > 0) { fields['PRODUCT_ROWS'][n] = { "ID": 0, "PRODUCT_ID": 703, "QUANTITY": 5, "PRICE": 779.60 }; } BX24.callMethod('crm.invoice.update', {"id": id, "fields": fields}, function(result) { if(result.error()) console.error(result.error()); else { console.info("Обновлён счёт с ID " + result.data()); } } ); } } function clone(src) { var dst; if (src instanceof Object) { dst = {}; for (var i in src) { if (src[i] instanceof Object) dst[i] = clone(src[i]); else dst[i] = src[i]; } } else dst = src; return dst; }
© «Битрикс», 2001-2024, «1С-Битрикс», 2024