public async Task GetAllDepartments()
        {
            try
            {
                var fieldParams = new OdooFieldParameters();
                fieldParams.Add("name");
                fieldParams.Add("company_id");
                fieldParams.Add("color");

                var departments = await this.OdooRpcClient.GetAll <JObject[]>("hr.department", fieldParams, new OdooPaginationParameters().OrderByDescending("name"));

                Console.WriteLine(departments.FirstOrDefault());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error getting departments from Odoo: {0}", ex.Message);
            }
        }
        public async Task GetDepartments()
        {
            try
            {
                var reqParams = new OdooGetParameters("hr.department");
                reqParams.Ids.Add(6);
                //reqParams.Ids.Add(7);

                var fieldParams = new OdooFieldParameters();
                fieldParams.Add("name");
                fieldParams.Add("company_id");

                var departments = await this.OdooRpcClient.Get <JObject[]>(reqParams, fieldParams);

                Console.WriteLine(departments.FirstOrDefault());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error getting departments from Odoo: {0}", ex.Message);
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        public Task <T> Get <T>(OdooSearchParameters getParams, OdooFieldParameters fieldParams, OdooPaginationParameters pagParams)
        {
            var searchReadCommand = new OdooSearchCommand(CreateRpcClient());

            return(searchReadCommand.Execute <T>(this.SessionInfo, getParams, fieldParams, pagParams));
        }
Esempio n. 5
0
        public Task <T> Get <T>(OdooGetParameters getParams, OdooFieldParameters fieldParams)
        {
            var readCommand = new OdooReadCommand(CreateRpcClient());

            return(readCommand.Execute <T>(this.SessionInfo, getParams, fieldParams));
        }
Esempio n. 6
0
 public Task <T> Get <T>(OdooSearchParameters getParams, OdooFieldParameters fieldParams)
 {
     return(Get <T>(getParams, fieldParams, new OdooPaginationParameters()));
 }
Esempio n. 7
0
 public Task <T> GetAll <T>(string model, OdooFieldParameters fieldParameters, OdooPaginationParameters pagParameters)
 {
     return(Get <T>(new OdooSearchParameters(model), fieldParameters, pagParameters));
 }
Esempio n. 8
0
        private OdooRpcRequest CreateReadRequest(OdooSessionInfo sessionInfo, OdooGetParameters getParams, OdooFieldParameters fieldParams)
        {
            List <object> requestArgs = new List <object>(
                new object[]
            {
                sessionInfo.Database,
                sessionInfo.UserId,
                sessionInfo.Password,
                getParams.Model,
                "read",
                new object[]
                {
                    getParams.Ids
                }
            }
                );

            if (fieldParams != null && fieldParams.Count > 0)
            {
                dynamic getOptions = new ExpandoObject();
                getOptions.fields = fieldParams.ToArray();
                requestArgs.Add(getOptions);
            }

            return(new OdooRpcRequest()
            {
                service = "object",
                method = "execute_kw",
                args = requestArgs.ToArray(),
                context = sessionInfo.UserContext
            });
        }
Esempio n. 9
0
 public Task <T> Execute <T>(OdooSessionInfo sessionInfo, OdooGetParameters getParams, OdooFieldParameters fieldParams)
 {
     return(InvokeRpc <T>(sessionInfo, CreateReadRequest(sessionInfo, getParams, fieldParams)));
 }
Esempio n. 10
0
        private OdooRpcRequest CreateSearchRequest(OdooSessionInfo sessionInfo, string method, OdooSearchParameters searchParams, OdooFieldParameters fieldParams, OdooPaginationParameters pagParams)
        {
            List <object> requestArgs = new List <object>(
                new object[]
            {
                sessionInfo.Database,
                sessionInfo.UserId,
                sessionInfo.Password,
                searchParams.Model,
                method,
                new object[]
                {
                    searchParams.DomainFilter.ToFilterArray()
                }
            }
                );

            dynamic searchOptions    = new ExpandoObject();
            bool    useSearchOptions = false;

            if (fieldParams != null && fieldParams.Count > 0)
            {
                searchOptions.fields = fieldParams.ToArray();
                useSearchOptions     = true;
            }

            if (pagParams != null && pagParams.IsDefined())
            {
                pagParams.AddToParameters(searchOptions);
                useSearchOptions = true;
            }

            if (useSearchOptions)
            {
                requestArgs.Add(searchOptions);
            }

            return(new OdooRpcRequest()
            {
                service = "object",
                method = "execute_kw",
                args = requestArgs.ToArray(),
                context = sessionInfo.UserContext
            });
        }
Esempio n. 11
0
 public Task <T> Execute <T>(OdooSessionInfo sessionInfo, OdooSearchParameters searchParams, OdooFieldParameters fieldParams, OdooPaginationParameters pagParams)
 {
     return(InvokeRpc <T>(sessionInfo, CreateSearchRequest(sessionInfo, "search_read", searchParams, fieldParams, pagParams)));
 }