Вставить новую запись (Odoo) - мобильный фреймворк Odoo - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть метод, который принимает OValue:

getResults(OValues values)

Внутри метода есть ff.

ORecordValues value = new ORecordValues();
value.put("order_partner_id", orderline.getPartner(values));
value.put("product_id", orderline.getProduct(values));
value.put("product_uom_qty",values.getInt("product_uom_qty"));
value.put("price_unit", values.getInt("product_uom_qty"));
value.put("discount",values.getInt("product_uom_qty"));
orderline.getServerDataHelper().createOnServer(value);

Возможно ли вставить напрямую на сервер Odoo, не сохраняя его в База данных android? или какие-либо альтернативные способы успешной вставки данных на сервер Odoo?

В ServerDataHelper java класс:

public int createOnServer(ORecordValues data) {
  OdooResult result = mOdoo.createRecord(mModel.getModelName(), data);
  return result.getInt("result");
}

1 Ответ

0 голосов
/ 10 апреля 2020

Вам необходимо передать идентификатор записи сервера при создании записей на сервере.

Передать идентификатор локальной строки (хранится в столбце _id) в метод selectServerId , чтобы получить идентификатор сервера (хранится в столбце id):

Проверьте следующий пример :

ResPartner resPartner = new ResPartner(getApplicationContext(), null);
ProductProduct productProduct = new ProductProduct(getApplicationContext(), null);

...

ORecordValues value = new ORecordValues();

int partner_id = resPartner.selectServerId(values.getInt("partner_id"));
int product_id = productProduct.selectServerId(values.getInt("product_id"));

value.put("order_partner_id", partner_id);
value.put("product_id", product_id);
value.put("product_uom_qty",values.getInt("product_uom_qty"));
value.put("price_unit", values.getInt("product_uom_qty"));
value.put("discount",values.getInt("product_uom_qty"));

orderline.getServerDataHelper().createOnServer(value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...