Skip to content

Commit

Permalink
Making errors more verbose + generating missing models (#35)
Browse files Browse the repository at this point in the history
  • Loading branch information
davidferlay committed Nov 17, 2022
1 parent e429767 commit bb6d596
Show file tree
Hide file tree
Showing 361 changed files with 44,327 additions and 1,161 deletions.
126 changes: 126 additions & 0 deletions account_abstract_payment.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
package odoo

import (
"fmt"
)

// AccountAbstractPayment represents account.abstract.payment model.
type AccountAbstractPayment struct {
LastUpdate *Time `xmlrpc:"__last_update,omitempty"`
Amount *Float `xmlrpc:"amount,omitempty"`
Communication *String `xmlrpc:"communication,omitempty"`
CompanyId *Many2One `xmlrpc:"company_id,omitempty"`
CurrencyId *Many2One `xmlrpc:"currency_id,omitempty"`
DisplayName *String `xmlrpc:"display_name,omitempty"`
HidePaymentMethod *Bool `xmlrpc:"hide_payment_method,omitempty"`
Id *Int `xmlrpc:"id,omitempty"`
JournalId *Many2One `xmlrpc:"journal_id,omitempty"`
PartnerId *Many2One `xmlrpc:"partner_id,omitempty"`
PartnerType *Selection `xmlrpc:"partner_type,omitempty"`
PaymentDate *Time `xmlrpc:"payment_date,omitempty"`
PaymentMethodCode *String `xmlrpc:"payment_method_code,omitempty"`
PaymentMethodId *Many2One `xmlrpc:"payment_method_id,omitempty"`
PaymentType *Selection `xmlrpc:"payment_type,omitempty"`
}

// AccountAbstractPayments represents array of account.abstract.payment model.
type AccountAbstractPayments []AccountAbstractPayment

// AccountAbstractPaymentModel is the odoo model name.
const AccountAbstractPaymentModel = "account.abstract.payment"

// Many2One convert AccountAbstractPayment to *Many2One.
func (aap *AccountAbstractPayment) Many2One() *Many2One {
return NewMany2One(aap.Id.Get(), "")
}

// CreateAccountAbstractPayment creates a new account.abstract.payment model and returns its id.
func (c *Client) CreateAccountAbstractPayment(aap *AccountAbstractPayment) (int64, error) {
return c.Create(AccountAbstractPaymentModel, aap)
}

// UpdateAccountAbstractPayment updates an existing account.abstract.payment record.
func (c *Client) UpdateAccountAbstractPayment(aap *AccountAbstractPayment) error {
return c.UpdateAccountAbstractPayments([]int64{aap.Id.Get()}, aap)
}

// UpdateAccountAbstractPayments updates existing account.abstract.payment records.
// All records (represented by ids) will be updated by aap values.
func (c *Client) UpdateAccountAbstractPayments(ids []int64, aap *AccountAbstractPayment) error {
return c.Update(AccountAbstractPaymentModel, ids, aap)
}

// DeleteAccountAbstractPayment deletes an existing account.abstract.payment record.
func (c *Client) DeleteAccountAbstractPayment(id int64) error {
return c.DeleteAccountAbstractPayments([]int64{id})
}

// DeleteAccountAbstractPayments deletes existing account.abstract.payment records.
func (c *Client) DeleteAccountAbstractPayments(ids []int64) error {
return c.Delete(AccountAbstractPaymentModel, ids)
}

// GetAccountAbstractPayment gets account.abstract.payment existing record.
func (c *Client) GetAccountAbstractPayment(id int64) (*AccountAbstractPayment, error) {
aaps, err := c.GetAccountAbstractPayments([]int64{id})
if err != nil {
return nil, err
}
if aaps != nil && len(*aaps) > 0 {
return &((*aaps)[0]), nil
}
return nil, fmt.Errorf("id %v of account.abstract.payment not found", id)
}

// GetAccountAbstractPayments gets account.abstract.payment existing records.
func (c *Client) GetAccountAbstractPayments(ids []int64) (*AccountAbstractPayments, error) {
aaps := &AccountAbstractPayments{}
if err := c.Read(AccountAbstractPaymentModel, ids, nil, aaps); err != nil {
return nil, err
}
return aaps, nil
}

// FindAccountAbstractPayment finds account.abstract.payment record by querying it with criteria.
func (c *Client) FindAccountAbstractPayment(criteria *Criteria) (*AccountAbstractPayment, error) {
aaps := &AccountAbstractPayments{}
if err := c.SearchRead(AccountAbstractPaymentModel, criteria, NewOptions().Limit(1), aaps); err != nil {
return nil, err
}
if aaps != nil && len(*aaps) > 0 {
return &((*aaps)[0]), nil
}
return nil, fmt.Errorf("no account.abstract.payment was found with criteria %v", criteria)
}

// FindAccountAbstractPayments finds account.abstract.payment records by querying it
// and filtering it with criteria and options.
func (c *Client) FindAccountAbstractPayments(criteria *Criteria, options *Options) (*AccountAbstractPayments, error) {
aaps := &AccountAbstractPayments{}
if err := c.SearchRead(AccountAbstractPaymentModel, criteria, options, aaps); err != nil {
return nil, err
}
return aaps, nil
}

// FindAccountAbstractPaymentIds finds records ids by querying it
// and filtering it with criteria and options.
func (c *Client) FindAccountAbstractPaymentIds(criteria *Criteria, options *Options) ([]int64, error) {
ids, err := c.Search(AccountAbstractPaymentModel, criteria, options)
if err != nil {
return []int64{}, err
}
return ids, nil
}

// FindAccountAbstractPaymentId finds record id by querying it with criteria.
func (c *Client) FindAccountAbstractPaymentId(criteria *Criteria, options *Options) (int64, error) {
ids, err := c.Search(AccountAbstractPaymentModel, criteria, options)
if err != nil {
return -1, err
}
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("no account.abstract.payment was found with criteria %v and options %v", criteria, options)
}
48 changes: 24 additions & 24 deletions account_account.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,28 @@ import (

// AccountAccount represents account.account model.
type AccountAccount struct {
LastUpdate *Time `xmlrpc:"__last_update,omptempty"`
Code *String `xmlrpc:"code,omptempty"`
CompanyId *Many2One `xmlrpc:"company_id,omptempty"`
CreateDate *Time `xmlrpc:"create_date,omptempty"`
CreateUid *Many2One `xmlrpc:"create_uid,omptempty"`
CurrencyId *Many2One `xmlrpc:"currency_id,omptempty"`
Deprecated *Bool `xmlrpc:"deprecated,omptempty"`
DisplayName *String `xmlrpc:"display_name,omptempty"`
GroupId *Many2One `xmlrpc:"group_id,omptempty"`
Id *Int `xmlrpc:"id,omptempty"`
InternalType *Selection `xmlrpc:"internal_type,omptempty"`
LastTimeEntriesChecked *Time `xmlrpc:"last_time_entries_checked,omptempty"`
Name *String `xmlrpc:"name,omptempty"`
Note *String `xmlrpc:"note,omptempty"`
OpeningCredit *Float `xmlrpc:"opening_credit,omptempty"`
OpeningDebit *Float `xmlrpc:"opening_debit,omptempty"`
Reconcile *Bool `xmlrpc:"reconcile,omptempty"`
TagIds *Relation `xmlrpc:"tag_ids,omptempty"`
TaxIds *Relation `xmlrpc:"tax_ids,omptempty"`
UserTypeId *Many2One `xmlrpc:"user_type_id,omptempty"`
WriteDate *Time `xmlrpc:"write_date,omptempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omptempty"`
LastUpdate *Time `xmlrpc:"__last_update,omitempty"`
Code *String `xmlrpc:"code,omitempty"`
CompanyId *Many2One `xmlrpc:"company_id,omitempty"`
CreateDate *Time `xmlrpc:"create_date,omitempty"`
CreateUid *Many2One `xmlrpc:"create_uid,omitempty"`
CurrencyId *Many2One `xmlrpc:"currency_id,omitempty"`
Deprecated *Bool `xmlrpc:"deprecated,omitempty"`
DisplayName *String `xmlrpc:"display_name,omitempty"`
GroupId *Many2One `xmlrpc:"group_id,omitempty"`
Id *Int `xmlrpc:"id,omitempty"`
InternalType *Selection `xmlrpc:"internal_type,omitempty"`
LastTimeEntriesChecked *Time `xmlrpc:"last_time_entries_checked,omitempty"`
Name *String `xmlrpc:"name,omitempty"`
Note *String `xmlrpc:"note,omitempty"`
OpeningCredit *Float `xmlrpc:"opening_credit,omitempty"`
OpeningDebit *Float `xmlrpc:"opening_debit,omitempty"`
Reconcile *Bool `xmlrpc:"reconcile,omitempty"`
TagIds *Relation `xmlrpc:"tag_ids,omitempty"`
TaxIds *Relation `xmlrpc:"tax_ids,omitempty"`
UserTypeId *Many2One `xmlrpc:"user_type_id,omitempty"`
WriteDate *Time `xmlrpc:"write_date,omitempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omitempty"`
}

// AccountAccounts represents array of account.account model.
Expand Down Expand Up @@ -97,7 +97,7 @@ func (c *Client) FindAccountAccount(criteria *Criteria) (*AccountAccount, error)
if aas != nil && len(*aas) > 0 {
return &((*aas)[0]), nil
}
return nil, fmt.Errorf("account.account was not found")
return nil, fmt.Errorf("no account.account was found with criteria %v", criteria)
}

// FindAccountAccounts finds account.account records by querying it
Expand Down Expand Up @@ -129,5 +129,5 @@ func (c *Client) FindAccountAccountId(criteria *Criteria, options *Options) (int
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("account.account was not found")
return -1, fmt.Errorf("no account.account was found with criteria %v and options %v", criteria, options)
}
122 changes: 122 additions & 0 deletions account_account_tag.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
package odoo

import (
"fmt"
)

// AccountAccountTag represents account.account.tag model.
type AccountAccountTag struct {
LastUpdate *Time `xmlrpc:"__last_update,omitempty"`
Active *Bool `xmlrpc:"active,omitempty"`
Applicability *Selection `xmlrpc:"applicability,omitempty"`
Color *Int `xmlrpc:"color,omitempty"`
CreateDate *Time `xmlrpc:"create_date,omitempty"`
CreateUid *Many2One `xmlrpc:"create_uid,omitempty"`
DisplayName *String `xmlrpc:"display_name,omitempty"`
Id *Int `xmlrpc:"id,omitempty"`
Name *String `xmlrpc:"name,omitempty"`
WriteDate *Time `xmlrpc:"write_date,omitempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omitempty"`
}

// AccountAccountTags represents array of account.account.tag model.
type AccountAccountTags []AccountAccountTag

// AccountAccountTagModel is the odoo model name.
const AccountAccountTagModel = "account.account.tag"

// Many2One convert AccountAccountTag to *Many2One.
func (aat *AccountAccountTag) Many2One() *Many2One {
return NewMany2One(aat.Id.Get(), "")
}

// CreateAccountAccountTag creates a new account.account.tag model and returns its id.
func (c *Client) CreateAccountAccountTag(aat *AccountAccountTag) (int64, error) {
return c.Create(AccountAccountTagModel, aat)
}

// UpdateAccountAccountTag updates an existing account.account.tag record.
func (c *Client) UpdateAccountAccountTag(aat *AccountAccountTag) error {
return c.UpdateAccountAccountTags([]int64{aat.Id.Get()}, aat)
}

// UpdateAccountAccountTags updates existing account.account.tag records.
// All records (represented by ids) will be updated by aat values.
func (c *Client) UpdateAccountAccountTags(ids []int64, aat *AccountAccountTag) error {
return c.Update(AccountAccountTagModel, ids, aat)
}

// DeleteAccountAccountTag deletes an existing account.account.tag record.
func (c *Client) DeleteAccountAccountTag(id int64) error {
return c.DeleteAccountAccountTags([]int64{id})
}

// DeleteAccountAccountTags deletes existing account.account.tag records.
func (c *Client) DeleteAccountAccountTags(ids []int64) error {
return c.Delete(AccountAccountTagModel, ids)
}

// GetAccountAccountTag gets account.account.tag existing record.
func (c *Client) GetAccountAccountTag(id int64) (*AccountAccountTag, error) {
aats, err := c.GetAccountAccountTags([]int64{id})
if err != nil {
return nil, err
}
if aats != nil && len(*aats) > 0 {
return &((*aats)[0]), nil
}
return nil, fmt.Errorf("id %v of account.account.tag not found", id)
}

// GetAccountAccountTags gets account.account.tag existing records.
func (c *Client) GetAccountAccountTags(ids []int64) (*AccountAccountTags, error) {
aats := &AccountAccountTags{}
if err := c.Read(AccountAccountTagModel, ids, nil, aats); err != nil {
return nil, err
}
return aats, nil
}

// FindAccountAccountTag finds account.account.tag record by querying it with criteria.
func (c *Client) FindAccountAccountTag(criteria *Criteria) (*AccountAccountTag, error) {
aats := &AccountAccountTags{}
if err := c.SearchRead(AccountAccountTagModel, criteria, NewOptions().Limit(1), aats); err != nil {
return nil, err
}
if aats != nil && len(*aats) > 0 {
return &((*aats)[0]), nil
}
return nil, fmt.Errorf("no account.account.tag was found with criteria %v", criteria)
}

// FindAccountAccountTags finds account.account.tag records by querying it
// and filtering it with criteria and options.
func (c *Client) FindAccountAccountTags(criteria *Criteria, options *Options) (*AccountAccountTags, error) {
aats := &AccountAccountTags{}
if err := c.SearchRead(AccountAccountTagModel, criteria, options, aats); err != nil {
return nil, err
}
return aats, nil
}

// FindAccountAccountTagIds finds records ids by querying it
// and filtering it with criteria and options.
func (c *Client) FindAccountAccountTagIds(criteria *Criteria, options *Options) ([]int64, error) {
ids, err := c.Search(AccountAccountTagModel, criteria, options)
if err != nil {
return []int64{}, err
}
return ids, nil
}

// FindAccountAccountTagId finds record id by querying it with criteria.
func (c *Client) FindAccountAccountTagId(criteria *Criteria, options *Options) (int64, error) {
ids, err := c.Search(AccountAccountTagModel, criteria, options)
if err != nil {
return -1, err
}
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("no account.account.tag was found with criteria %v and options %v", criteria, options)
}
Loading

0 comments on commit bb6d596

Please sign in to comment.