-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathstock_quant_package.go
130 lines (114 loc) · 5.19 KB
/
stock_quant_package.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package odoo
import (
"fmt"
)
// StockQuantPackage represents stock.quant.package model.
type StockQuantPackage struct {
LastUpdate *Time `xmlrpc:"__last_update,omptempty"`
CompanyId *Many2One `xmlrpc:"company_id,omptempty"`
CreateDate *Time `xmlrpc:"create_date,omptempty"`
CreateUid *Many2One `xmlrpc:"create_uid,omptempty"`
CurrentDestinationLocationId *Many2One `xmlrpc:"current_destination_location_id,omptempty"`
CurrentPickingId *Bool `xmlrpc:"current_picking_id,omptempty"`
CurrentPickingMoveLineIds *Relation `xmlrpc:"current_picking_move_line_ids,omptempty"`
CurrentSourceLocationId *Many2One `xmlrpc:"current_source_location_id,omptempty"`
DisplayName *String `xmlrpc:"display_name,omptempty"`
Id *Int `xmlrpc:"id,omptempty"`
IsProcessed *Bool `xmlrpc:"is_processed,omptempty"`
LocationId *Many2One `xmlrpc:"location_id,omptempty"`
MoveLineIds *Relation `xmlrpc:"move_line_ids,omptempty"`
Name *String `xmlrpc:"name,omptempty"`
OwnerId *Many2One `xmlrpc:"owner_id,omptempty"`
PackagingId *Many2One `xmlrpc:"packaging_id,omptempty"`
QuantIds *Relation `xmlrpc:"quant_ids,omptempty"`
WriteDate *Time `xmlrpc:"write_date,omptempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omptempty"`
}
// StockQuantPackages represents array of stock.quant.package model.
type StockQuantPackages []StockQuantPackage
// StockQuantPackageModel is the odoo model name.
const StockQuantPackageModel = "stock.quant.package"
// Many2One convert StockQuantPackage to *Many2One.
func (sqp *StockQuantPackage) Many2One() *Many2One {
return NewMany2One(sqp.Id.Get(), "")
}
// CreateStockQuantPackage creates a new stock.quant.package model and returns its id.
func (c *Client) CreateStockQuantPackage(sqp *StockQuantPackage) (int64, error) {
return c.Create(StockQuantPackageModel, sqp)
}
// UpdateStockQuantPackage updates an existing stock.quant.package record.
func (c *Client) UpdateStockQuantPackage(sqp *StockQuantPackage) error {
return c.UpdateStockQuantPackages([]int64{sqp.Id.Get()}, sqp)
}
// UpdateStockQuantPackages updates existing stock.quant.package records.
// All records (represented by ids) will be updated by sqp values.
func (c *Client) UpdateStockQuantPackages(ids []int64, sqp *StockQuantPackage) error {
return c.Update(StockQuantPackageModel, ids, sqp)
}
// DeleteStockQuantPackage deletes an existing stock.quant.package record.
func (c *Client) DeleteStockQuantPackage(id int64) error {
return c.DeleteStockQuantPackages([]int64{id})
}
// DeleteStockQuantPackages deletes existing stock.quant.package records.
func (c *Client) DeleteStockQuantPackages(ids []int64) error {
return c.Delete(StockQuantPackageModel, ids)
}
// GetStockQuantPackage gets stock.quant.package existing record.
func (c *Client) GetStockQuantPackage(id int64) (*StockQuantPackage, error) {
sqps, err := c.GetStockQuantPackages([]int64{id})
if err != nil {
return nil, err
}
if sqps != nil && len(*sqps) > 0 {
return &((*sqps)[0]), nil
}
return nil, fmt.Errorf("id %v of stock.quant.package not found", id)
}
// GetStockQuantPackages gets stock.quant.package existing records.
func (c *Client) GetStockQuantPackages(ids []int64) (*StockQuantPackages, error) {
sqps := &StockQuantPackages{}
if err := c.Read(StockQuantPackageModel, ids, nil, sqps); err != nil {
return nil, err
}
return sqps, nil
}
// FindStockQuantPackage finds stock.quant.package record by querying it with criteria.
func (c *Client) FindStockQuantPackage(criteria *Criteria) (*StockQuantPackage, error) {
sqps := &StockQuantPackages{}
if err := c.SearchRead(StockQuantPackageModel, criteria, NewOptions().Limit(1), sqps); err != nil {
return nil, err
}
if sqps != nil && len(*sqps) > 0 {
return &((*sqps)[0]), nil
}
return nil, fmt.Errorf("no stock.quant.package was found with criteria %v", criteria)
}
// FindStockQuantPackages finds stock.quant.package records by querying it
// and filtering it with criteria and options.
func (c *Client) FindStockQuantPackages(criteria *Criteria, options *Options) (*StockQuantPackages, error) {
sqps := &StockQuantPackages{}
if err := c.SearchRead(StockQuantPackageModel, criteria, options, sqps); err != nil {
return nil, err
}
return sqps, nil
}
// FindStockQuantPackageIds finds records ids by querying it
// and filtering it with criteria and options.
func (c *Client) FindStockQuantPackageIds(criteria *Criteria, options *Options) ([]int64, error) {
ids, err := c.Search(StockQuantPackageModel, criteria, options)
if err != nil {
return []int64{}, err
}
return ids, nil
}
// FindStockQuantPackageId finds record id by querying it with criteria.
func (c *Client) FindStockQuantPackageId(criteria *Criteria, options *Options) (int64, error) {
ids, err := c.Search(StockQuantPackageModel, criteria, options)
if err != nil {
return -1, err
}
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("no stock.quant.package was found with criteria %v and options %v", criteria, options)
}