Skip to content

Commit 8a215a4

Browse files
committed
WIP
1 parent 4dc25eb commit 8a215a4

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/main/java/com/debortoliwines/odoo/api/OdooCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public Response searchObject(String objectName, Object[] filter, int offset, int
7878
Object orderParam = order == null || order.length() == 0 ? false : order;
7979
// Before Odoo 10 there's a 'context' parameter between order and count
8080
Object[] params = (this.session.getServerVersion().getMajor() < 10)
81-
? new Object[]{filter, offsetParam, limitParam, orderParam, false, count}
81+
? new Object[]{filter, offsetParam, limitParam, orderParam, session.getContext(), count}
8282
: new Object[]{filter, offsetParam, limitParam, orderParam, count};
8383

8484
try {
@@ -204,7 +204,7 @@ public boolean unlinkObject(String objectName, Object[] ids) throws XmlRpcExcept
204204
public Object createObject(String objectName, Map<String, Object> values) throws XmlRpcException {
205205
Object readResult ;
206206
if (this.session.getServerVersion().getMajor() >= 8 ) {
207-
readResult = (Object) session.executeCommand(objectName, "create", new Object[]{values});
207+
readResult = (Object) session.executeCommand(objectName, "create", new Object[]{values, session.getContext()});
208208
} else {
209209
readResult = (Object) session.executeCommand(objectName, "create", new Object[]{values, session.getContext()});
210210
}

src/main/java/com/debortoliwines/odoo/api/Session.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import com.debortoliwines.odoo.api.OdooXmlRpcProxy.RPCProtocol;
2727
import com.debortoliwines.odoo.api.OdooXmlRpcProxy.RPCServices;
28+
import java.util.Arrays;
2829

2930
/**
3031
* *
@@ -235,12 +236,26 @@ public Object executeCommand(final String objectName, final String commandName,
235236
Object[] connectionParams = new Object[]{databaseName, userID, password, objectName, commandName};
236237

237238
// Combine the connection parameters and command parameters
239+
// Object[] params;
240+
// if ()
238241
Object[] params = new Object[connectionParams.length + (parameters == null ? 0 : parameters.length)];
239242
System.arraycopy(connectionParams, 0, params, 0, connectionParams.length);
240243

241244
if (parameters != null && parameters.length > 0) {
242245
System.arraycopy(parameters, 0, params, connectionParams.length, parameters.length);
243246
}
247+
if (this.getServerVersion().getMajor() == 9 && this.context.size() > 0) {
248+
Integer initial_length = params.length;
249+
params = Arrays.copyOf(params, initial_length + this.context.size());
250+
System.arraycopy(this.context.toString(), 0, params, initial_length, this.context.size());
251+
}
252+
253+
//Try to always deal with the context
254+
// (this.getServerVersion().getMajor() < 10)
255+
// ? new Object[]{filter, offsetParam, limitParam, orderParam, false, count}
256+
// : new Object[]{filter, offsetParam, limitParam, orderParam, count};
257+
// this.getServerVersion()
258+
// System.arraycopy(this.getContext(), 0, params, connectionParams.length, parameters.length);
244259
return objectClient.execute("execute", params);
245260
}
246261

0 commit comments

Comments
 (0)