Fall 4979, Mehrere Provisionsempfänger

develop
Roman Widmann 2018-03-07 11:38:31 +01:00
parent 1f5a7e51d6
commit 86b7ce81a9
8 changed files with 69 additions and 28 deletions

View File

@ -38,6 +38,7 @@
'sale_partner_incoterm', 'sale_partner_incoterm',
], ],
'data': [ 'data': [
'views/commission_account.xml',
'wizards/wizard_confirm_production.xml', 'wizards/wizard_confirm_production.xml',
'security/security.xml', 'security/security.xml',
'data/dp_custom_data.xml', 'data/dp_custom_data.xml',

View File

@ -30,3 +30,4 @@ from . import material_type
from . import product from . import product
from . import ir_attachment from . import ir_attachment
from . import account from . import account
from . import commission_account

View File

@ -67,24 +67,3 @@ class AccountInvoice(models.Model):
if line.uom_id == self.env.ref('product.product_uom_unit'): # wenn die Mengeneinheit Stk. ist if line.uom_id == self.env.ref('product.product_uom_unit'): # wenn die Mengeneinheit Stk. ist
num_items += line.quantity num_items += line.quantity
record.num_items = num_items record.num_items = num_items
class AccountInvoiceReport(models.Model):
_inherit = "account.invoice.report"
commission_user_id = fields.Many2one('res.users', string='Provisionsempfänger', readonly=True)
def _select(self):
res = super(AccountInvoiceReport, self)._select()
res += ', sub.commission_user_id as commission_user_id'
return res
def _sub_select(self):
res = super(AccountInvoiceReport, self)._sub_select()
res += ', partner.commission_user_id'
return res
def _group_by(self):
res = super(AccountInvoiceReport, self)._group_by()
res += ', partner.commission_user_id'
return res

View File

@ -0,0 +1,13 @@
# Copyright 2018-Today datenpol gmbh (<http://www.datenpol.at>)
# License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses).
from odoo import api, fields, models, _
class CommissionAccount(models.Model):
_name = 'commission.account'
_description = 'Provisionsempfänger Objekt'
_order = "sequence, name"
name = fields.Char(string="Bezeichnung", required=True)
sequence = fields.Integer(string="Sequenznummer")

View File

@ -67,18 +67,13 @@ class Partner(models.Model):
date_vat_check = fields.Date(string='Datum der letzten UID-Prüfung') date_vat_check = fields.Date(string='Datum der letzten UID-Prüfung')
collective_bill = fields.Boolean(string='Sammelrechnung', default=True) collective_bill = fields.Boolean(string='Sammelrechnung', default=True)
country_id = fields.Many2one('res.country', string='Country', ondelete='restrict', default=_default_country_id) country_id = fields.Many2one('res.country', string='Country', ondelete='restrict', default=_default_country_id)
commission_user_id = fields.Many2one('res.users', string='Provisionsempfänger') commission_account_ids = fields.Many2many(comodel_name='commission.account', string='Provisionsempfänger')
_sql_constraints = [ _sql_constraints = [
('ref_uniq', 'unique(ref)', 'Die Interne Referenz muss eindeutig sein'), ('ref_uniq', 'unique(ref)', 'Die Interne Referenz muss eindeutig sein'),
('portal_id_uniq', 'unique(portal_id)', 'Die Portal-ID muss eindeutig sein') ('portal_id_uniq', 'unique(portal_id)', 'Die Portal-ID muss eindeutig sein')
] ]
@api.model
def _commercial_fields(self):
res = super(Partner, self)._commercial_fields()
return res + ['commission_user_id']
@api.one @api.one
@api.constrains('is_company', 'vat') @api.constrains('is_company', 'vat')
def _check_unique_vat(self): def _check_unique_vat(self):

View File

@ -9,3 +9,5 @@ access_product_xcategory_user,access_product_xcategory_user,model_product_xcateg
access_product_xcategory_sales_manager,access_product_xcategory_sales_manager,model_product_xcategory,sales_team.group_sale_manager,1,1,1,1 access_product_xcategory_sales_manager,access_product_xcategory_sales_manager,model_product_xcategory,sales_team.group_sale_manager,1,1,1,1
sale.access_sale_order_manager,sale.order.manager,model_sale_order,sales_team.group_sale_manager,1,1,1,0 sale.access_sale_order_manager,sale.order.manager,model_sale_order,sales_team.group_sale_manager,1,1,1,0
access_sale_order_unlink,sale.order.unlink,model_sale_order,dp_custom.group_allow_delete_so_drafts,1,1,1,1 access_sale_order_unlink,sale.order.unlink,model_sale_order,dp_custom.group_allow_delete_so_drafts,1,1,1,1
access_commission_account_user,access_commission_account_user,model_commission_account,base.group_user,1,0,0,0
access_commission_account_manager,access_commission_account_manager,model_commission_account,sales_team.group_sale_manager,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
9 access_product_xcategory_sales_manager access_product_xcategory_sales_manager model_product_xcategory sales_team.group_sale_manager 1 1 1 1
10 sale.access_sale_order_manager sale.order.manager model_sale_order sales_team.group_sale_manager 1 1 1 0
11 access_sale_order_unlink sale.order.unlink model_sale_order dp_custom.group_allow_delete_so_drafts 1 1 1 1
12 access_commission_account_user access_commission_account_user model_commission_account base.group_user 1 0 0 0
13 access_commission_account_manager access_commission_account_manager model_commission_account sales_team.group_sale_manager 1 1 1 1

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2018-Today datenpol gmbh(<http://www.datenpol.at>)
License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). -->
<odoo>
<record id="view_commission_account_form" model="ir.ui.view">
<field name="name">view_commission_account_form</field>
<field name="model">commission.account</field>
<field name="arch" type="xml">
<form string="Provisionsempfänger">
<sheet>
<group>
<field name="sequence"/>
<field name="name"/>
</group>
</sheet>
<div class="oe_chatter"></div>
</form>
</field>
</record>
<record id="view_commission_account_tree" model="ir.ui.view">
<field name="name">view_commission_account_tree</field>
<field name="model">commission.account</field>
<field name="arch" type="xml">
<tree>
<field name="sequence"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="action_commission_account" model="ir.actions.act_window">
<field name="name">Provisionsempfänger</field>
<field name="res_model">commission.account</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="context">{}</field>
<field name="view_id" ref="view_commission_account_tree"/>
</record>
<record id="menu_commission_account" model="ir.ui.menu">
<field name="name">Provisionsempfänger</field>
<field name="parent_id" ref="sale.menu_sale_config"/>
<field name="action" ref="action_commission_account"/>
<field name="sequence" eval="16"/>
</record>
</odoo>

View File

@ -59,7 +59,7 @@
<field name="collective_bill"/> <field name="collective_bill"/>
</xpath> </xpath>
<field name="user_id" position="after"> <field name="user_id" position="after">
<field name="commission_user_id"/> <field name="commission_account_ids" widget="many2many_tags"/>
</field> </field>
</field> </field>
</record> </record>