예제 #1
0
        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 void ToFilterArray_ShouldThrowExceptionIfFilterIsIncomplete()
        {
            OdooDomainFilter testDomain = new OdooDomainFilter()
                                          .Filter("id", ">", 1000)
                                          .And()
                                          .Filter("is_company", "=", true)
                                          .Or()
                                          .Filter("customer", "!=", false);

            Assert.Throws <InvalidOperationException>(() => testDomain.ToFilterArray());
        }
        public void Filter_ShouldAddCriteriaToFilter()
        {
            OdooDomainFilter testDomain = new OdooDomainFilter()
                                          .Filter("is_company", "=", true)
                                          .Filter("customer", "!=", false);

            Assert.Equal(new object[] {
                new object[] { "is_company", "=", true },
                new object[] { "customer", "!=", false }
            },
                         testDomain.ToFilterArray()
                         );
        }
예제 #4
0
        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 void Or_ShouldAddLogicalOrInPrefixFormToFilter()
        {
            OdooDomainFilter testDomain = new OdooDomainFilter()
                                          .Filter("id", ">", 1000)
                                          .Or()
                                          .Filter("is_company", "=", true)
                                          .Filter("customer", "!=", false);

            Assert.Equal(new object[] {
                new object[] { "id", ">", 1000 },
                "|",
                new object[] { "is_company", "=", true },
                new object[] { "customer", "!=", false }
            },
                         testDomain.ToFilterArray()
                         );
        }
예제 #6
0
        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);
        }
예제 #7
0
        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());
        }
예제 #8
0
        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());
        }
예제 #9
0
        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());
        }
        public void ToFilterArray_ShouldSupportMultipleFilterCriteria()
        {
            OdooDomainFilter testDomain = new OdooDomainFilter()
                                          .Filter("name", "=", "ABC")
                                          .Filter("language", "!=", "en_US")
                                          .Or()
                                          .Filter("country_id.code", "=", "be")
                                          .And()
                                          .Filter("country_id.code", "=", "de")
                                          .Filter("language", "=", "de_DE");

            Assert.Equal(new object[] {
                new object[] { "name", "=", "ABC" },
                new object[] { "language", "!=", "en_US" },
                "|",
                new object[] { "country_id.code", "=", "be" },
                "&",
                new object[] { "country_id.code", "=", "de" },
                new object[] { "language", "=", "de_DE" }
            },
                         testDomain.ToFilterArray()
                         );
        }
 public OdooSearchParameters(string model, OdooDomainFilter domainFilter)
 {
     this.Model        = model;
     this.DomainFilter = domainFilter;
 }
        public void ToFilterArray_ShouldReturnAnObjectArray()
        {
            OdooDomainFilter testDomain = new OdooDomainFilter();

            Assert.IsType <object[]>(testDomain.ToFilterArray());
        }
        public void Or_ShouldReturnOdooDomainFilterInstance()
        {
            OdooDomainFilter testDomain = new OdooDomainFilter();

            Assert.IsType <OdooDomainFilter>(testDomain.Or());
        }
        public void Filter_ShouldReturnOdooDomainFilterInstance()
        {
            OdooDomainFilter testDomain = new OdooDomainFilter();

            Assert.IsType <OdooDomainFilter>(testDomain.Filter("is_company", "=", true));
        }