Skip to content

Commit 0404e29

Browse files
author
Antoine Huret
committed
added account_analytic_tag.go + resolved invalid int type on AddRecord method of Relation
1 parent 30f0f81 commit 0404e29

File tree

3 files changed

+100
-2
lines changed

3 files changed

+100
-2
lines changed

account_analytic_tag.go

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package odoo
2+
3+
import (
4+
"fmt"
5+
)
6+
7+
// AccountAnalyticTag represents account.analytic.tag model
8+
type AccountAnalyticTag struct {
9+
LastUpdate *Time `xmlrpc:"__last_update,omptempty"`
10+
Active *Bool `xmlrpc:"active,omptempty"`
11+
Color *Int `xmlrpc:"color,omptempty"`
12+
CreateDate *Time `xmlrpc:"create_date,omptempty"`
13+
CreateUid *Many2One `xmlrpc:"create_uid,omptempty"`
14+
DisplayName *String `xmlrpc:"display_name,omptempty"`
15+
Id *Int `xmlrpc:"id,omptempty"`
16+
Name *String `xmlrpc:"name,omptempty"`
17+
WriteDate *Time `xmlrpc:"write_date,omptempty"`
18+
WriteUid *Many2One `xmlrpc:"write_uid,omptempty"`
19+
}
20+
21+
// AccountAnalyticTags represents array of account.analytic.tag model
22+
type AccountAnalyticTags []AccountAnalyticTag
23+
24+
// AccountAnalyticTagModel is the odoo model name
25+
const AccountAnalyticTagModel = "account.analytic.tag"
26+
27+
// Many2One convert AccountAnalyticTag to *Many2One.
28+
func (aat *AccountAnalyticTag) Many2One() *Many2One {
29+
return NewMany2One(aat.Id.Get(), "")
30+
}
31+
32+
// CreateAccountAnalyticTag creates a new account.analytic.tag model and returns its id.
33+
func (c *Client) CreateAccountAnalyticTag(aat *AccountAnalyticTag) (int64, error) {
34+
return c.Create(AccountAnalyticTagModel, aat)
35+
}
36+
37+
// UpdateAccountAnalyticTag updates an existing account.analytic.tag record.
38+
func (c *Client) UpdateAccountAnalyticTag(aat *AccountAnalyticTag) error {
39+
return c.UpdateAccountAnalyticTags([]int64{aat.Id.Get()}, aat)
40+
}
41+
42+
// UpdateAccountAnalyticTags updates existing account.analytic.tag records.
43+
// All records (represented by ids) will be updated by aat values.
44+
func (c *Client) UpdateAccountAnalyticTags(ids []int64, aat *AccountAnalyticTag) error {
45+
return c.Update(AccountAnalyticTagModel, ids, aat)
46+
}
47+
48+
// DeleteAccountAnalyticTag deletes an existing account.analytic.tag record.
49+
func (c *Client) DeleteAccountAnalyticTag(id int64) error {
50+
return c.DeleteAccountAnalyticTags([]int64{id})
51+
}
52+
53+
// DeleteAccountAnalyticTags deletes existing account.analytic.tag records.
54+
func (c *Client) DeleteAccountAnalyticTags(ids []int64) error {
55+
return c.Delete(AccountAnalyticTagModel, ids)
56+
}
57+
58+
// GetAccountAnalyticTag gets account.analytic.tag existing record.
59+
func (c *Client) GetAccountAnalyticTag(id int64) (*AccountAnalyticTag, error) {
60+
aats, err := c.GetAccountAnalyticTags([]int64{id})
61+
if err != nil {
62+
return nil, err
63+
}
64+
if aats != nil && len(*aats) > 0 {
65+
return &((*aats)[0]), nil
66+
}
67+
return nil, fmt.Errorf("id %v of %s not found", id, AccountAnalyticTagModel)
68+
}
69+
70+
// GetAccountAnalyticTags gets account.analytic.tag existing records.
71+
func (c *Client) GetAccountAnalyticTags(ids []int64) (*AccountAnalyticTags, error) {
72+
aats := &AccountAnalyticTags{}
73+
if err := c.Read(AccountAnalyticTagModel, ids, nil, aats); err != nil {
74+
return nil, err
75+
}
76+
return aats, nil
77+
}
78+
79+
// FindAccountAnalyticTag finds account.analytic.tag record by querying it with criteria
80+
func (c *Client) FindAccountAnalyticTag(criteria *Criteria) (*AccountAnalyticTag, error) {
81+
aats := &AccountAnalyticTags{}
82+
if err := c.SearchRead(AccountAnalyticTagModel, criteria, NewOptions().Limit(1), aats); err != nil {
83+
return nil, err
84+
}
85+
if aats != nil && len(*aats) > 0 {
86+
return &((*aats)[0]), nil
87+
}
88+
return nil, fmt.Errorf("account.analytic.tag was not found")
89+
}
90+
91+
// FindAccountAnalyticTags finds account.analytic.tag records by querying it
92+
// and filtering it with criteria and options.
93+
func (c *Client) FindAccountAnalyticTags(criteria *Criteria, options *Options) (*AccountAnalyticTags, error) {
94+
aats := &AccountAnalyticTags{}
95+
if err := c.SearchRead(AccountAnalyticTagModel, criteria, options, aats); err != nil {
96+
return nil, err
97+
}
98+
return aats, nil
99+
}

go.sum

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
1919
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
2020
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
2121
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
22-
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2322
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
2423
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
2524
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=

types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ func (r *Relation) RemoveRecord(record int64) {
175175

176176
// AddRecord is an helper to add an existing record of one2many or many2many.
177177
// https://www.odoo.com/documentation/13.0/reference/orm.html#odoo.models.Model.write
178-
func (r *Relation) AddRecord(record int) {
178+
func (r *Relation) AddRecord(record int64) {
179179
r.v = append(r.v, newTuple(4, record, 0))
180180
}
181181

0 commit comments

Comments
 (0)