forked from skilld-labs/go-odoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaccount_tax_group.go
136 lines (119 loc) · 4.53 KB
/
account_tax_group.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
136
package odoo
import (
"fmt"
)
// AccountTaxGroup represents account.tax.group model.
type AccountTaxGroup 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"`
Name *String `xmlrpc:"name,omptempty"`
Sequence *Int `xmlrpc:"sequence,omptempty"`
WriteDate *Time `xmlrpc:"write_date,omptempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omptempty"`
}
// AccountTaxGroups represents array of account.tax.group model.
type AccountTaxGroups []AccountTaxGroup
// AccountTaxGroupModel is the odoo model name.
const AccountTaxGroupModel = "account.tax.group"
// Many2One convert AccountTaxGroup to *Many2One.
func (atg *AccountTaxGroup) Many2One() *Many2One {
return NewMany2One(atg.Id.Get(), "")
}
// CreateAccountTaxGroup creates a new account.tax.group model and returns its id.
func (c *Client) CreateAccountTaxGroup(atg *AccountTaxGroup) (int64, error) {
ids, err := c.CreateAccountTaxGroups([]*AccountTaxGroup{atg})
if err != nil {
return -1, err
}
if len(ids) == 0 {
return -1, nil
}
return ids[0], nil
}
// CreateAccountTaxGroup creates a new account.tax.group model and returns its id.
func (c *Client) CreateAccountTaxGroups(atgs []*AccountTaxGroup) ([]int64, error) {
var vv []interface{}
for _, v := range atgs {
vv = append(vv, v)
}
return c.Create(AccountTaxGroupModel, vv)
}
// UpdateAccountTaxGroup updates an existing account.tax.group record.
func (c *Client) UpdateAccountTaxGroup(atg *AccountTaxGroup) error {
return c.UpdateAccountTaxGroups([]int64{atg.Id.Get()}, atg)
}
// UpdateAccountTaxGroups updates existing account.tax.group records.
// All records (represented by ids) will be updated by atg values.
func (c *Client) UpdateAccountTaxGroups(ids []int64, atg *AccountTaxGroup) error {
return c.Update(AccountTaxGroupModel, ids, atg)
}
// DeleteAccountTaxGroup deletes an existing account.tax.group record.
func (c *Client) DeleteAccountTaxGroup(id int64) error {
return c.DeleteAccountTaxGroups([]int64{id})
}
// DeleteAccountTaxGroups deletes existing account.tax.group records.
func (c *Client) DeleteAccountTaxGroups(ids []int64) error {
return c.Delete(AccountTaxGroupModel, ids)
}
// GetAccountTaxGroup gets account.tax.group existing record.
func (c *Client) GetAccountTaxGroup(id int64) (*AccountTaxGroup, error) {
atgs, err := c.GetAccountTaxGroups([]int64{id})
if err != nil {
return nil, err
}
if atgs != nil && len(*atgs) > 0 {
return &((*atgs)[0]), nil
}
return nil, fmt.Errorf("id %v of account.tax.group not found", id)
}
// GetAccountTaxGroups gets account.tax.group existing records.
func (c *Client) GetAccountTaxGroups(ids []int64) (*AccountTaxGroups, error) {
atgs := &AccountTaxGroups{}
if err := c.Read(AccountTaxGroupModel, ids, nil, atgs); err != nil {
return nil, err
}
return atgs, nil
}
// FindAccountTaxGroup finds account.tax.group record by querying it with criteria.
func (c *Client) FindAccountTaxGroup(criteria *Criteria) (*AccountTaxGroup, error) {
atgs := &AccountTaxGroups{}
if err := c.SearchRead(AccountTaxGroupModel, criteria, NewOptions().Limit(1), atgs); err != nil {
return nil, err
}
if atgs != nil && len(*atgs) > 0 {
return &((*atgs)[0]), nil
}
return nil, fmt.Errorf("account.tax.group was not found with criteria %v", criteria)
}
// FindAccountTaxGroups finds account.tax.group records by querying it
// and filtering it with criteria and options.
func (c *Client) FindAccountTaxGroups(criteria *Criteria, options *Options) (*AccountTaxGroups, error) {
atgs := &AccountTaxGroups{}
if err := c.SearchRead(AccountTaxGroupModel, criteria, options, atgs); err != nil {
return nil, err
}
return atgs, nil
}
// FindAccountTaxGroupIds finds records ids by querying it
// and filtering it with criteria and options.
func (c *Client) FindAccountTaxGroupIds(criteria *Criteria, options *Options) ([]int64, error) {
ids, err := c.Search(AccountTaxGroupModel, criteria, options)
if err != nil {
return []int64{}, err
}
return ids, nil
}
// FindAccountTaxGroupId finds record id by querying it with criteria.
func (c *Client) FindAccountTaxGroupId(criteria *Criteria, options *Options) (int64, error) {
ids, err := c.Search(AccountTaxGroupModel, criteria, options)
if err != nil {
return -1, err
}
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("account.tax.group was not found with criteria %v and options %v", criteria, options)
}