Browse Source

commit incial

Rodney Elpidio Enciso Arias 6 years ago
commit
b0c10f463a

+ 3 - 0
__init__.py

@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import models

BIN
__init__.pyc


+ 24 - 0
__openerp__.py

@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+{
+    'name': 'Eiru Sales commissions Cemobo',
+    'version': '8.0.1.1.1',
+    'author': 'EIRU',
+    "category": "Sales Management",
+    'license': 'AGPL-3',
+    'depends': [
+        'base',
+        'account',
+        'product',
+        'sale',
+        'sale_order_cemobo',
+    ],
+    "data": [
+        # "security/commission_security.xml",
+        # "security/ir.model.access.csv",
+        "views/sale_order_view.xml",
+        "views/account_invoice_view.xml",
+        "views/sale_commission_view.xml",
+    ],
+    "installable": True,
+}

+ 4 - 0
models/__init__.py

@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+from . import sale_commission
+from . import sale_order
+from . import account_invoice

BIN
models/__init__.pyc


+ 8 - 0
models/account_invoice.py

@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+
+from openerp import api, exceptions, fields, models, _
+
+class AccountInvoice(models.Model):
+    _inherit = "account.invoice"
+
+    commission_id = fields.Many2one('sale.commission', string='Regla de Comision')

BIN
models/account_invoice.pyc


+ 40 - 0
models/sale_commission.py

@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+
+from openerp import api, exceptions, fields, models, _
+
+class SaleCommission(models.Model):
+    _name = "sale.commission"
+    _description = "Commission in sales"
+
+    @api.model
+    def _get_default_company_id(self):
+        company_obj = self.env['res.company']
+        company_id = company_obj._company_default_get('sale.commission')
+        return company_obj.browse(company_id)
+
+    name = fields.Char('Name', required=True)
+    commission_type = fields.Selection(
+        selection = [
+            ("fixed", "Fixed percentage")
+        ],
+        string="Type",
+        required=True, default="fixed")
+    fix_qty = fields.Float(string="Fixed percentage")
+    active = fields.Boolean(default=True)
+    invoice_state = fields.Selection(
+        selection = [
+            ('open', 'Facturas Abiertas'),
+            ('paid', 'Facturas Pagadas'),
+        ],
+        string='Invoice Status',
+        required=True, default='open')
+    amount_base_type = fields.Selection(
+        selection = [
+            ('utility_amount', 'Utilidad'),
+            ('gross_amount', 'Monto Bruto'),
+            ('net_amount', 'Monto Neto'),
+        ],
+        string='Base',
+        required=True, default='utility_amount')
+    company_id = fields.Many2one('res.company', string='Company',
+                                 default=_get_default_company_id)

BIN
models/sale_commission.pyc


+ 38 - 0
models/sale_order.py

@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+from openerp import api, exceptions, fields, models, _
+from pytz import timezone
+from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT
+from datetime import datetime,timedelta
+
+DATE_FORMAT = '%Y-%m-%d'
+
+class SaleOrder(models.Model):
+    _inherit = "sale.order"
+
+    commission_id = fields.Many2one('sale.commission', string='Regla de Comision')
+
+    @api.multi
+    def order_process_now(self):
+        """
+        Confirms order and creates and validates invoice, confirms pickings.
+        """
+        for sale in self:
+            sale.action_button_confirm()
+            inv_id = sale.action_invoice_create()
+            if inv_id:
+                inv = self.env['account.invoice'].browse(inv_id)
+                date = self._convert_str_to_datetime(sale.date_order)
+                date = date.strftime(DATE_FORMAT)
+                inv.write({
+                    'date_invoice':date,
+                    'supplier_invoice_number':self.invoice_number,
+                    'contado':self.contado,
+                    'credito':self.credito,
+                    'commission_id':self.commission_id.id,
+                })
+                self.update_state()
+                inv.signal_workflow('invoice_open')
+            for picking in sale.picking_ids:
+                picking.force_assign()
+                picking.action_done()

BIN
models/sale_order.pyc


+ 34 - 0
security/commission_security.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <record id="sale_commission_multicompany_rule" model="ir.rule">
+            <field name="name">Sale commission multi-company</field>
+            <field name="model_id" ref="model_sale_commission"/>
+            <field name="global" eval="True"/>
+            <field name="domain_force">['|','|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
+        </record>
+
+        <record id="account_invoice_line_agent_multicompany_rule" model="ir.rule">
+            <field name="name">Invoice line agent multi-company</field>
+            <field name="model_id" ref="model_account_invoice_line_agent"/>
+            <field name="global" eval="True"/>
+            <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
+        </record>
+
+        <record id="sale_commission_settlement_multicompany_rule" model="ir.rule">
+            <field name="name">Settlement multi-company</field>
+            <field name="model_id" ref="model_sale_commission_settlement"/>
+            <field name="global" eval="True"/>
+            <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
+        </record>
+
+        <record id="sale_commission_settlement_line_multicompany_rule" model="ir.rule">
+            <field name="name">Settlement line multi-company</field>
+            <field name="model_id" ref="model_sale_commission_settlement_line"/>
+            <field name="global" eval="True"/>
+            <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
+        </record>
+
+    </data>
+</openerp>

+ 11 - 0
security/ir.model.access.csv

@@ -0,0 +1,11 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_sale_commission_manager","access_sale_commission_manager","model_sale_commission","base.group_sale_manager",1,1,1,1
+"access_sale_commission_user","access_sale_commission_user","model_sale_commission","base.group_sale_salesman",1,0,0,0
+"access_sale_commission_section_manager","access_sale_commission_section_manager","model_sale_commission_section","base.group_sale_manager",1,1,1,1
+"access_sale_commission_section_user","access_sale_commission_section_user","model_sale_commission_section","base.group_sale_salesman",1,0,0,0
+"access_sale_order_line_agent","access_sale_order_line_agent","model_sale_order_line_agent","base.group_sale_salesman",1,1,1,1
+"access_account_invoice_line_agent","access_account_invoice_line_agent","model_account_invoice_line_agent","base.group_sale_salesman",1,1,1,1
+"access_sale_commission_settlement_manager","access_sale_commission_settlement_manager","model_sale_commission_settlement","base.group_sale_manager",1,1,1,1
+"access_sale_commission_settlement_user","access_sale_commission_settlement_manager","model_sale_commission_settlement","base.group_sale_salesman",1,0,0,0
+"access_sale_commission_settlement_line_manager","access_sale_commission_settlement_line_user","model_sale_commission_settlement_line","base.group_sale_manager",1,1,1,1
+"access_sale_commission_settlement_line_user","access_sale_commission_settlement_line_user","model_sale_commission_settlement_line","base.group_sale_salesman",1,0,0,0

+ 18 - 0
views/account_invoice_view.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <record id="view_account_invoice_commission" model="ir.ui.view">
+            <field name="name">view.account.invoice.commission</field>
+            <field name="model">account.invoice</field>
+            <field name="inherit_id" ref="account.invoice_form" />
+            <field name="priority" eval="18"/>
+            <field name="arch" type="xml">
+                <field name="move_id" position="after">
+                    <field name="commission_id"/>
+                </field>
+            </field>
+        </record>
+
+    </data>
+</openerp>

+ 60 - 0
views/sale_commission_view.xml

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <record model="ir.ui.view" id="sale_commission_tree">
+            <field name="name">Sales commissions tree</field>
+            <field name="model">sale.commission</field>
+            <field name="arch" type="xml">
+                <tree string="Commissions">
+                    <field name="name" />
+                    <field name="commission_type" />
+                    <field name="amount_base_type" />
+                </tree>
+            </field>
+        </record>
+
+        <record model="ir.ui.view" id="sale_commission_form">
+            <field name="name">Sales commissions form</field>
+            <field name="model">sale.commission</field>
+            <field name="arch" type="xml">
+                <form string="Commission">
+                    <group string="General information">
+                        <group>
+                            <field name="name" />
+                            <field name="active" />
+                            <field name="company_id" />
+                        </group>
+                        <group>
+                            <field name="commission_type" />
+                            <field name="amount_base_type" />
+                            <field name="invoice_state"/>
+                        </group>
+                    </group>
+                    <group string="Rates definition" colspan="4">
+                        <field name="fix_qty"
+                               attrs="{'invisible': [('commission_type', '!=', 'fixed')], 'required': [('commission_type', '=', 'fixed')]}" />
+                    </group>
+                </form>
+            </field>
+        </record>
+
+        <record model="ir.actions.act_window" id="action_commission">
+            <field name="name">Commission types</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">sale.commission</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form</field>
+        </record>
+
+        <menuitem name="Commissions"
+                  id="menu_sale_commissions_conf"
+                  parent="base.menu_base_config" />
+
+        <menuitem name="Commission types"
+                  id="menu_sale_commissions_types"
+                  parent="menu_sale_commissions_conf"
+                  action="action_commission" />
+
+    </data>
+</openerp>

+ 19 - 0
views/sale_order_view.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <record id="view_sale_order_commission" model="ir.ui.view">
+            <field name="name">view.sale.order.commission</field>
+            <field name="model">sale.order</field>
+            <field name="inherit_id" ref="sale.view_order_form" />
+            <field name="priority" eval="18"/>
+            <field name="groups_id" eval="[(4, ref('base.group_sale_salesman'))]"/>
+            <field name="arch" type="xml">
+                <field name="user_id" position="after">
+                    <field name="commission_id"/>
+                </field>
+            </field>
+        </record>
+
+    </data>
+</openerp>