44 "fmt"
55)
66
7- // AccountAnalyticLine represents account.analytic.line model
7+ // AccountAnalyticLine represents account.analytic.line model.
88type AccountAnalyticLine struct {
99 LastUpdate * Time `xmlrpc:"__last_update,omptempty"`
1010 AccountId * Many2One `xmlrpc:"account_id,omptempty"`
@@ -43,10 +43,10 @@ type AccountAnalyticLine struct {
4343 WriteUid * Many2One `xmlrpc:"write_uid,omptempty"`
4444}
4545
46- // AccountAnalyticLines represents array of account.analytic.line model
46+ // AccountAnalyticLines represents array of account.analytic.line model.
4747type AccountAnalyticLines []AccountAnalyticLine
4848
49- // AccountAnalyticLineModel is the odoo model name
49+ // AccountAnalyticLineModel is the odoo model name.
5050const AccountAnalyticLineModel = "account.analytic.line"
5151
5252// Many2One convert AccountAnalyticLine to *Many2One.
@@ -89,7 +89,7 @@ func (c *Client) GetAccountAnalyticLine(id int64) (*AccountAnalyticLine, error)
8989 if aals != nil && len (* aals ) > 0 {
9090 return & ((* aals )[0 ]), nil
9191 }
92- return nil , fmt .Errorf ("id %v of %s not found" , id , AccountAnalyticLineModel )
92+ return nil , fmt .Errorf ("id %v of account.analytic.line was not found" , id )
9393}
9494
9595// GetAccountAnalyticLines gets account.analytic.line existing records.
@@ -101,7 +101,7 @@ func (c *Client) GetAccountAnalyticLines(ids []int64) (*AccountAnalyticLines, er
101101 return aals , nil
102102}
103103
104- // FindAccountAnalyticLine finds account.analytic.line record by querying it with criteria
104+ // FindAccountAnalyticLine finds account.analytic.line record by querying it with criteria.
105105func (c * Client ) FindAccountAnalyticLine (criteria * Criteria ) (* AccountAnalyticLine , error ) {
106106 aals := & AccountAnalyticLines {}
107107 if err := c .SearchRead (AccountAnalyticLineModel , criteria , NewOptions ().Limit (1 ), aals ); err != nil {
@@ -122,3 +122,25 @@ func (c *Client) FindAccountAnalyticLines(criteria *Criteria, options *Options)
122122 }
123123 return aals , nil
124124}
125+
126+ // FindAccountAnalyticLineIds finds records ids by querying it
127+ // and filtering it with criteria and options.
128+ func (c * Client ) FindAccountAnalyticLineIds (criteria * Criteria , options * Options ) ([]int64 , error ) {
129+ ids , err := c .Search (AccountAnalyticLineModel , criteria , options )
130+ if err != nil {
131+ return []int64 {}, err
132+ }
133+ return ids , nil
134+ }
135+
136+ // FindAccountAnalyticLineId finds record id by querying it with criteria.
137+ func (c * Client ) FindAccountAnalyticLineId (criteria * Criteria ) (int64 , error ) {
138+ ids , err := c .Search (AccountAnalyticLineModel , criteria , NewOptions ().Limit (1 ))
139+ if err != nil {
140+ return - 1 , err
141+ }
142+ if len (ids ) > 0 {
143+ return ids [0 ], nil
144+ }
145+ return - 1 , fmt .Errorf ("account.analytic.line was not found" )
146+ }
0 commit comments