-
Notifications
You must be signed in to change notification settings - Fork 0
/
stock_immediate_transfer.go
135 lines (118 loc) · 4.98 KB
/
stock_immediate_transfer.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
131
132
133
134
135
package odoo
import (
"fmt"
)
// StockImmediateTransfer represents stock.immediate.transfer model.
type StockImmediateTransfer struct {
LastUpdate *Time `xmlrpc:"__last_update,omptempty"`
CreateDate *Time `xmlrpc:"create_date,omptempty"`
CreateUid *Many2One `xmlrpc:"create_uid,omptempty"`
DisplayName *String `xmlrpc:"display_name,omptempty"`
Id *Int `xmlrpc:"id,omptempty"`
PickIds *Relation `xmlrpc:"pick_ids,omptempty"`
WriteDate *Time `xmlrpc:"write_date,omptempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omptempty"`
}
// StockImmediateTransfers represents array of stock.immediate.transfer model.
type StockImmediateTransfers []StockImmediateTransfer
// StockImmediateTransferModel is the odoo model name.
const StockImmediateTransferModel = "stock.immediate.transfer"
// Many2One convert StockImmediateTransfer to *Many2One.
func (sit *StockImmediateTransfer) Many2One() *Many2One {
return NewMany2One(sit.Id.Get(), "")
}
// CreateStockImmediateTransfer creates a new stock.immediate.transfer model and returns its id.
func (c *Client) CreateStockImmediateTransfer(sit *StockImmediateTransfer) (int64, error) {
ids, err := c.CreateStockImmediateTransfers([]*StockImmediateTransfer{sit})
if err != nil {
return -1, err
}
if len(ids) == 0 {
return -1, nil
}
return ids[0], nil
}
// CreateStockImmediateTransfer creates a new stock.immediate.transfer model and returns its id.
func (c *Client) CreateStockImmediateTransfers(sits []*StockImmediateTransfer) ([]int64, error) {
var vv []interface{}
for _, v := range sits {
vv = append(vv, v)
}
return c.Create(StockImmediateTransferModel, vv)
}
// UpdateStockImmediateTransfer updates an existing stock.immediate.transfer record.
func (c *Client) UpdateStockImmediateTransfer(sit *StockImmediateTransfer) error {
return c.UpdateStockImmediateTransfers([]int64{sit.Id.Get()}, sit)
}
// UpdateStockImmediateTransfers updates existing stock.immediate.transfer records.
// All records (represented by ids) will be updated by sit values.
func (c *Client) UpdateStockImmediateTransfers(ids []int64, sit *StockImmediateTransfer) error {
return c.Update(StockImmediateTransferModel, ids, sit)
}
// DeleteStockImmediateTransfer deletes an existing stock.immediate.transfer record.
func (c *Client) DeleteStockImmediateTransfer(id int64) error {
return c.DeleteStockImmediateTransfers([]int64{id})
}
// DeleteStockImmediateTransfers deletes existing stock.immediate.transfer records.
func (c *Client) DeleteStockImmediateTransfers(ids []int64) error {
return c.Delete(StockImmediateTransferModel, ids)
}
// GetStockImmediateTransfer gets stock.immediate.transfer existing record.
func (c *Client) GetStockImmediateTransfer(id int64) (*StockImmediateTransfer, error) {
sits, err := c.GetStockImmediateTransfers([]int64{id})
if err != nil {
return nil, err
}
if sits != nil && len(*sits) > 0 {
return &((*sits)[0]), nil
}
return nil, fmt.Errorf("id %v of stock.immediate.transfer not found", id)
}
// GetStockImmediateTransfers gets stock.immediate.transfer existing records.
func (c *Client) GetStockImmediateTransfers(ids []int64) (*StockImmediateTransfers, error) {
sits := &StockImmediateTransfers{}
if err := c.Read(StockImmediateTransferModel, ids, nil, sits); err != nil {
return nil, err
}
return sits, nil
}
// FindStockImmediateTransfer finds stock.immediate.transfer record by querying it with criteria.
func (c *Client) FindStockImmediateTransfer(criteria *Criteria) (*StockImmediateTransfer, error) {
sits := &StockImmediateTransfers{}
if err := c.SearchRead(StockImmediateTransferModel, criteria, NewOptions().Limit(1), sits); err != nil {
return nil, err
}
if sits != nil && len(*sits) > 0 {
return &((*sits)[0]), nil
}
return nil, fmt.Errorf("stock.immediate.transfer was not found with criteria %v", criteria)
}
// FindStockImmediateTransfers finds stock.immediate.transfer records by querying it
// and filtering it with criteria and options.
func (c *Client) FindStockImmediateTransfers(criteria *Criteria, options *Options) (*StockImmediateTransfers, error) {
sits := &StockImmediateTransfers{}
if err := c.SearchRead(StockImmediateTransferModel, criteria, options, sits); err != nil {
return nil, err
}
return sits, nil
}
// FindStockImmediateTransferIds finds records ids by querying it
// and filtering it with criteria and options.
func (c *Client) FindStockImmediateTransferIds(criteria *Criteria, options *Options) ([]int64, error) {
ids, err := c.Search(StockImmediateTransferModel, criteria, options)
if err != nil {
return []int64{}, err
}
return ids, nil
}
// FindStockImmediateTransferId finds record id by querying it with criteria.
func (c *Client) FindStockImmediateTransferId(criteria *Criteria, options *Options) (int64, error) {
ids, err := c.Search(StockImmediateTransferModel, criteria, options)
if err != nil {
return -1, err
}
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("stock.immediate.transfer was not found with criteria %v and options %v", criteria, options)
}