Я установил пользовательский модуль odoo, чтобы добавить общую и линейную скидку к заказам, он работал хорошо, пока я не добавил новую компанию, после добавления новой компании я должен перейти к выставлению счетов, чтобы активировать общую скидку, но odoo ограничивает меня в этом
Я пытался добавить правила, но это не работает. Я не знаю, что на самом деле правило, я должен добавить
Вот как я определил вид настройки
class KSResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
ks_enable_discount = fields.Boolean(string="Activate Total Discount")
ks_sales_discount_account = fields.Many2one('account.account', string="Sales Discount Account")
ks_purchase_discount_account = fields.Many2one('account.account', string="Purchase Discount Account")
ks_accounting_present = fields.Boolean(compute='ks_check_charts_of_accounts')
def get_values(self):
ks_res = super(KSResConfigSettings, self).get_values()
ks_res.update(
ks_enable_discount=self.env['ir.config_parameter'].sudo().get_param('ks_enable_discount'),
ks_sales_discount_account=int(self.env['ir.config_parameter'].sudo().get_param('ks_sales_discount_account')),
ks_purchase_discount_account=int(self.env['ir.config_parameter'].sudo().get_param('ks_purchase_discount_account')),)
return ks_res
def set_values(self):
super(KSResConfigSettings, self).set_values()
self.env['ir.config_parameter'].set_param('ks_enable_discount', self.ks_enable_discount)
if self.ks_enable_discount:
self.env['ir.config_parameter'].set_param('ks_sales_discount_account', self.ks_sales_discount_account.id)
self.env['ir.config_parameter'].set_param('ks_purchase_discount_account',
self.ks_purchase_discount_account.id)
odoo>
<data>
<record id="ks_res_config_settings_view_form" model="ir.ui.view">
<field name="name">ks.res.config.settings.view.form.inherit.account.discount</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="50"/>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='has_accounting_entries']" position="after">
<h2 attrs="{'invisible': [('has_chart_of_accounts','==',False)]}">Total Discount</h2>
<div class="row mt16 o_settings_container"
attrs="{'invisible': [('has_chart_of_accounts','==',False)]}">
<div class="col-xs-12 col-md-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="ks_enable_discount"/>
</div>
<div class="o_setting_right_pane">
<label for ='ks_enable_discount'/>
<div class="text-muted">
Activate Total discount on all modules.
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 o_setting_box" attrs="{'invisible':[('ks_enable_discount','==',False)]}">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<span class="o_form_label">Accounts</span>
<div class="text-muted">
Set default Total discount accounts for sale and purchase order.
</div>
<div class="content-group">
<div class="row mt16" >
<label for="ks_sales_discount_account"
class="col-md-3 o_light_label"/>
<field name="ks_sales_discount_account"
attrs="{'required': [('ks_enable_discount','==',True)]}"/>
</div>
<div class="row mt16" >
<label for="ks_purchase_discount_account"
class="col-md-3 o_light_label"/>
<field name="ks_purchase_discount_account"
attrs="{'required': [('ks_enable_discount','==',True)]}"/>
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
</data>
</odoo>
Это то, что появляется в журнале
2019-10-29 12: 31: 26,410 16582 INFO demo odoo.models: Запрошенная операция не может быть выполнена из-за правил записи: Тип документа: account.account, Операция: чтение, Записи: 31, Пользователь: 2