static void Main(string[] args) { Console.WriteLine("Hello World!"); var settings = JsonConvert.DeserializeObject <JObject>(File.ReadAllText("appsettings.json")); var odooConnection = settings["OdooConnection"].ToObject <OdooConnectionInfo>(); try { var odooRpcClient = new OdooRpcClient(odooConnection); odooRpcClient.Authenticate().Wait(); var odooVersion = odooRpcClient.GetOdooVersion().Result; Console.WriteLine("Odoo Version: {0} - {1}", odooVersion.ServerVersion, odooVersion.ProtocolVersion); if (odooRpcClient.SessionInfo.IsLoggedIn) { Console.WriteLine("Login successful => User Id: {0}", odooRpcClient.SessionInfo.UserId); } else { Console.WriteLine("Login failed"); } } catch (Exception ex) { Console.WriteLine("Error connecting to Odoo: {0}", ex.Message); } }
public static IOdoo Connect(string host, int port, bool isSsl, string database, string username, string password) { OdooConnectionInfo odooConnectionInfo = new OdooConnectionInfo() { Host = host, Port = port, IsSSL = isSsl, Database = database, Username = username, Password = password }; OdooRpcClient odooRpcClient = new OdooRpcClient(odooConnectionInfo); Task task = odooRpcClient.Authenticate(); task.Wait(); Task <OdooVersionInfo> getVersionTask = odooRpcClient.GetOdooVersion(); task.Wait(); string serverVersion = getVersionTask.Result.ServerVersion; return(new Odoo(odooRpcClient) { Version = serverVersion }); }
public static IProduct[] GetProducts(this OdooRpcClient odooRpcClient, long?companyId = null, DateTime?createdAfter = null) { OdooDomainFilter filter = new OdooDomainFilter(); if (companyId.HasValue) { filter = filter.Filter("company_id", "=", companyId.Value); } if (createdAfter.HasValue) { filter = filter.Filter("create_date", ">", createdAfter.Value); } Task <JObject[]> task1 = odooRpcClient.Get <JObject[]>(new OdooSearchParameters(Product.MODEL)); task1.Wait(); Task <Product[]> task = odooRpcClient.Get <Product[]>( new OdooSearchParameters( Product.MODEL, filter ) ); task.Wait(); List <Product> products = task.Result.ToList(); products.ForEach(product => product.OdooRpcClient = odooRpcClient); return(products.ToArray()); }
public static Company[] GetCompanies(this OdooRpcClient odooRpcClient) { Task <Company[]> task = odooRpcClient.Get <Company[]>(new OdooSearchParameters(model: Company.MODEL)); task.Wait(); List <Company> companies = task.Result.ToList(); companies.ForEach(company => company.OdooRpcClient = odooRpcClient); return(companies.ToArray()); }
public static Terminal[] GetTerminals(this OdooRpcClient odooRpcClient, long companyId) { OdooDomainFilter filter = new OdooDomainFilter().Filter("company_id", "=", companyId); Task <Terminal[]> task = odooRpcClient.Get <Terminal[]>(new OdooSearchParameters(Terminal.MODEL, filter)); task.Wait(); List <Terminal> terminals = task.Result.ToList(); terminals.ForEach(terminal => terminal.OdooRpcClient = odooRpcClient); return(terminals.ToArray()); }
public static Company GetCompany(this OdooRpcClient odooRpcClient, string name) { Task <Company[]> task = odooRpcClient.Get <Company[]>( new OdooSearchParameters( model: Company.MODEL, domainFilter: new OdooDomainFilter().Filter("name", "=", name) ) ); task.Wait(); List <Company> companies = task.Result.ToList(); companies.ForEach(company => company.OdooRpcClient = odooRpcClient); return(task.Result.FirstOrDefault()); }
public static Terminal GetTerminal(this OdooRpcClient odooRpcClient, long companyId, string terminalName) { OdooDomainFilter filter = new OdooDomainFilter() .Filter("company_id", "=", companyId) .Filter("display_name", "=", terminalName); Task <Terminal[]> task = odooRpcClient.Get <Terminal[]>(new OdooSearchParameters(Terminal.MODEL, filter)); task.Wait(); Terminal terminal = task.Result.FirstOrDefault(); if (terminal != null) { terminal.OdooRpcClient = odooRpcClient; } return(terminal); }
public static Session[] GetSessions(this OdooRpcClient odooRpcClient, long terminalId, DateTime?createdAfter = null, DateTime?createdBefore = null, DateTime?openedAfter = null, DateTime?openedBefore = null, DateTime?closedAfter = null, DateTime?closedBefore = null) { OdooDomainFilter filter = new OdooDomainFilter().Filter("config_id", "=", terminalId); if (createdAfter.HasValue) { filter = filter.Filter("create_date", ">", createdAfter.Value); } if (createdBefore.HasValue) { filter = filter.Filter("create_date", "<", createdBefore.Value); } if (openedAfter.HasValue) { filter = filter.Filter("start_at", ">", openedAfter.Value); } if (openedBefore.HasValue) { filter = filter.Filter("start_at", "<", openedBefore.Value); } if (closedAfter.HasValue) { filter = filter.Filter("stop_at", ">", closedAfter.Value); } if (closedBefore.HasValue) { filter = filter.Filter("stop_at", "<", closedBefore.Value); } Task <Session[]> task = odooRpcClient.Get <Session[]>(new OdooSearchParameters(Session.MODEL, filter)); task.Wait(); List <Session> sessions = task.Result.ToList(); sessions.ForEach(session => session.OdooRpcClient = odooRpcClient); return(sessions.ToArray()); }
public static OrderLine[] GetPosOrderLines(this OdooRpcClient odooRpcClient, long orderId) { OdooDomainFilter filter = new OdooDomainFilter().Filter("order_id", "=", orderId); Task <JObject[]> task1 = odooRpcClient.Get <JObject[]>(new OdooSearchParameters(OrderLine.MODEL, filter)); task1.Wait(); Task <OrderLine[]> task = odooRpcClient.Get <OrderLine[]>(new OdooSearchParameters(OrderLine.MODEL, filter)); task.Wait(); List <OrderLine> posOrderLines = task.Result.ToList(); posOrderLines.ForEach(posOrderLine => { posOrderLine.OdooRpcClient = odooRpcClient; }); return(posOrderLines.ToArray()); }
public static Order[] GetPosOrders(this OdooRpcClient odooRpcClient, long?companyId = null, long?terminalId = null, long?sessionId = null, DateTime?createdAfter = null, DateTime?createdBefore = null) { OdooDomainFilter filter = new OdooDomainFilter(); if (companyId.HasValue) { filter = filter.Filter("company_id", "=", companyId.Value); } if (terminalId.HasValue) { filter = filter.Filter("config_id", "=", terminalId.Value); } if (sessionId.HasValue) { filter = filter.Filter("session_id", "=", sessionId.Value); } if (createdAfter.HasValue) { filter = filter.Filter("create_date", ">", createdAfter.Value); } if (createdBefore.HasValue) { filter = filter.Filter("create_date", "<", createdBefore.Value); } Task <JObject[]> task1 = odooRpcClient.Get <JObject[]>(new OdooSearchParameters(model: Order.MODEL, domainFilter: filter)); task1.Wait(); Task <Order[]> task = odooRpcClient.Get <Order[]>(new OdooSearchParameters(model: Order.MODEL, domainFilter: filter)); task.Wait(); List <Order> posOrders = task.Result.ToList(); posOrders.ForEach(posOrders => posOrders.OdooRpcClient = odooRpcClient); return(posOrders.ToArray()); }
static async System.Threading.Tasks.Task Main(string[] args) { Console.WriteLine("Iniciando..."); //Creo objeto OdooConnectionInfo con información de conección OdooConnectionInfo ConnectionInfo = new OdooConnectionInfo() { IsSSL = false, Host = "localhost", Port = 8069, Database = "db", Username = "******", Password = "******" }; //Me conecto a Odoo IOdooRpcClient RpcClient = new OdooRpcClient(ConnectionInfo); //Obtengo la versión de Odoo y la muestro por consola var odooVersion = await RpcClient.GetOdooVersion(); Console.WriteLine("Odoo Version: {0} - {1}", odooVersion.ServerVersion, odooVersion.ProtocolVersion); //Login await RpcClient.Authenticate(); if (RpcClient.SessionInfo.IsLoggedIn) { Console.WriteLine("Login correcto => Usuario Id: {0}", RpcClient.SessionInfo.UserId); } else { Console.WriteLine("Login incorrecto"); } //Actualizo los conductores de un vehículo - many2many campo custom Object[] obj = new Object[] { new Object[] { 6, 0, new Object[] { 2, 7 } } }; try { await RpcClient.Update <dynamic>("fleet.vehicle", 4, new { x_conductor = obj }); Console.WriteLine("OK - Actualizado"); } catch (Exception ex) { Console.WriteLine("Error getting partners from Odoo: {0}", ex.Message); } //Obtengo datos de los autos try { var fieldParams = new OdooFieldParameters(); fieldParams.Add("model_id"); fieldParams.Add("display_name"); fieldParams.Add("x_conductor"); var autos = await RpcClient.GetAll <JObject[]>("fleet.vehicle", fieldParams, new OdooPaginationParameters().OrderByDescending("name")); foreach (var auto in autos) { Console.WriteLine(auto); } //Console.WriteLine(autos.FirstOrDefault()); } catch (Exception ex) { Console.WriteLine("Error recuperando los autos desde Odoo: {0}", ex.Message); } }
public Odoo(OdooRpcClient odooRpcClient) { OdooRpcClient = odooRpcClient; }