diff --git a/hr_payroll_commission/__init__.py b/hr_payroll_commission/__init__.py deleted file mode 100644 index 09434554..00000000 --- a/hr_payroll_commission/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from . import models diff --git a/hr_payroll_commission/__manifest__.py b/hr_payroll_commission/__manifest__.py deleted file mode 100644 index fd9f631d..00000000 --- a/hr_payroll_commission/__manifest__.py +++ /dev/null @@ -1,29 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -{ - 'name': 'Commissions in Payslips', - 'author': 'Hibou Corp.', - 'version': '15.0.1.0.0', - 'license': 'OPL-1', - 'category': 'Accounting/Commissions', - 'sequence': 95, - 'summary': 'Reimburse Commissions in Payslips', - 'description': """ -Reimburse Commissions in Payslips - """, - 'depends': [ - 'hr_commission', - 'hr_payroll_hibou', - ], - 'data': [ - 'views/hr_commission_views.xml', - 'views/hr_payslip_views.xml', - 'data/hr_payroll_commission_data.xml', - ], - 'demo': [ - 'data/hr_payroll_commission_demo.xml', - ], - 'installable': True, - 'application': False, - 'auto_install': True, -} diff --git a/hr_payroll_commission/data/hr_payroll_commission_data.xml b/hr_payroll_commission/data/hr_payroll_commission_data.xml deleted file mode 100644 index a666f821..00000000 --- a/hr_payroll_commission/data/hr_payroll_commission_data.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Commissions - COMMISSION - - - diff --git a/hr_payroll_commission/data/hr_payroll_commission_demo.xml b/hr_payroll_commission/data/hr_payroll_commission_demo.xml deleted file mode 100644 index 77e8ccfa..00000000 --- a/hr_payroll_commission/data/hr_payroll_commission_demo.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - python - -result = inputs.COMMISSION.amount > 0.0 if inputs.COMMISSION else False - - code - -result = inputs.COMMISSION.amount if inputs.COMMISSION else 0 - - COMMISSION - - Commissions - - - - - diff --git a/hr_payroll_commission/i18n/es.po b/hr_payroll_commission/i18n/es.po deleted file mode 100644 index bd8e7b45..00000000 --- a/hr_payroll_commission/i18n/es.po +++ /dev/null @@ -1,63 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * hr_payroll_commission -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 15.0+e\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-12 01:26+0000\n" -"PO-Revision-Date: 2021-10-12 01:26+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: hr_payroll_commission -#: model:ir.model.fields,field_description:hr_payroll_commission.field_hr_payslip__commission_count -msgid "Commission Count" -msgstr "Recuento de Comisiones" - -#. module: hr_payroll_commission -#: model:ir.model,name:hr_payroll_commission.model_hr_commission_payment -msgid "Commission Payment" -msgstr "Pago de comisiones" - -#. module: hr_payroll_commission -#: model:ir.model.fields,field_description:hr_payroll_commission.field_hr_payslip__commission_payment_ids -#: model_terms:ir.ui.view,arch_db:hr_payroll_commission.hr_payslip_view_form_inherit -msgid "Commissions" -msgstr "Comisiones" - -#. module: hr_payroll_commission -#: model:ir.model.fields,help:hr_payroll_commission.field_hr_payslip__commission_payment_ids -msgid "Commissions to reimburse to employee." -msgstr "Comisiones para reembolsar al empleado" - -#. module: hr_payroll_commission -#: model:ir.model,name:hr_payroll_commission.model_hr_payslip -msgid "Pay Slip" -msgstr "Recibo de Nómina" - -#. module: hr_payroll_commission -#: model:ir.model.fields,field_description:hr_payroll_commission.field_hr_commission_payment__payslip_id -msgid "Payslip" -msgstr "Recibo de Nómina" - -#. module: hr_payroll_commission -#: model:ir.model.fields,field_description:hr_payroll_commission.field_hr_commission_payment__pay_in_payslip -msgid "Reimburse In Next Payslip" -msgstr "Reembolsar en el próximo recibo de nómina" - -#. module: hr_payroll_commission -#: code:addons/hr_payroll_commission/models/hr_payslip.py:0 -#, python-format -msgid "Reimbursed Commissions" -msgstr "Comisiones Reembolsadas" - -#. module: hr_payroll_commission -#: model_terms:ir.ui.view,arch_db:hr_payroll_commission.view_hr_commission_payment_form_inherit -msgid "Report in Next Payslip" -msgstr "Reportar en el próximo recibo de nómina" diff --git a/hr_payroll_commission/models/__init__.py b/hr_payroll_commission/models/__init__.py deleted file mode 100644 index ba3bcc23..00000000 --- a/hr_payroll_commission/models/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from . import hr_commission -from . import hr_payslip diff --git a/hr_payroll_commission/models/hr_commission.py b/hr_payroll_commission/models/hr_commission.py deleted file mode 100644 index 3cd127ff..00000000 --- a/hr_payroll_commission/models/hr_commission.py +++ /dev/null @@ -1,13 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from odoo import fields, models, _ - - -class CommissionPayment(models.Model): - _inherit = 'hr.commission.payment' - - pay_in_payslip = fields.Boolean(string="Reimburse In Next Payslip") - payslip_id = fields.Many2one('hr.payslip', string="Payslip", readonly=True) - - def action_report_in_next_payslip(self): - self.filtered(lambda p: not p.payslip_id).write({'pay_in_payslip': True}) diff --git a/hr_payroll_commission/models/hr_payslip.py b/hr_payroll_commission/models/hr_payslip.py deleted file mode 100644 index dbd1b1e6..00000000 --- a/hr_payroll_commission/models/hr_payslip.py +++ /dev/null @@ -1,74 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from odoo import api, Command, fields, models, _ - - -class HrPayslip(models.Model): - _inherit = 'hr.payslip' - - commission_payment_ids = fields.One2many( - 'hr.commission.payment', 'payslip_id', string='Commissions', - help="Commissions to reimburse to employee.", - states={'draft': [('readonly', False)], 'verify': [('readonly', False)]}) - commission_count = fields.Integer(compute='_compute_commission_count') - - @api.depends('commission_payment_ids.commission_ids', 'commission_payment_ids.payslip_id') - def _compute_commission_count(self): - for payslip in self: - payslip.commission_count = len(payslip.mapped('commission_payment_ids.commission_ids')) - - @api.model_create_multi - def create(self, vals_list): - payslips = super().create(vals_list) - draft_slips = payslips.filtered(lambda p: p.employee_id and p.state == 'draft') - if not draft_slips: - return payslips - - commission_payments = self.env['hr.commission.payment'].search([ - ('employee_id', 'in', draft_slips.mapped('employee_id').ids), - ('pay_in_payslip', '=', True), - ('payslip_id', '=', False)]) - for slip in draft_slips: - payslip_commission_payments = commission_payments.filtered(lambda c: c.employee_id == slip.employee_id) - slip.commission_payment_ids = [(5, 0, 0)] + [(4, c.id, False) for c in payslip_commission_payments] - return payslips - - def write(self, vals): - res = super().write(vals) - if 'commission_payment_ids' in vals: - self._compute_commission_input_line_ids() - if 'input_line_ids' in vals: - self._update_commission() - return res - - def _update_commission(self): - commission_type = self.env.ref('hr_payroll_commission.commission_other_input', raise_if_not_found=False) - for payslip in self: - if not payslip.input_line_ids.filtered(lambda line: line.input_type_id == commission_type): - payslip.commission_payment_ids.write({'payslip_id': False}) - - def _compute_commission_input_line_ids(self): - commission_type = self.env.ref('hr_payroll_commission.commission_other_input', raise_if_not_found=False) - if not commission_type: - return - for payslip in self: - amount = sum(self.commission_payment_ids.mapped('commission_amount')) - if not amount: - continue - lines_to_remove = payslip.input_line_ids.filtered(lambda x: x.input_type_id == commission_type) - input_lines_vals = [(2, line.id, False) for line in lines_to_remove] - input_lines_vals.append((0, 0, { - 'amount': amount, - 'input_type_id': commission_type.id - })) - payslip.update({'input_line_ids': input_lines_vals}) - - def open_commissions(self): - self.ensure_one() - return { - 'type': 'ir.actions.act_window', - 'name': _('Reimbursed Commissions'), - 'res_model': 'hr.commission', - 'view_mode': 'tree,form', - 'domain': [('id', 'in', self.mapped('commission_payment_ids.commission_ids').ids)], - } diff --git a/hr_payroll_commission/static/description/icon.png b/hr_payroll_commission/static/description/icon.png deleted file mode 100644 index 9ccbaed5..00000000 Binary files a/hr_payroll_commission/static/description/icon.png and /dev/null differ diff --git a/hr_payroll_commission/tests/__init__.py b/hr_payroll_commission/tests/__init__.py deleted file mode 100755 index 0ce84cbf..00000000 --- a/hr_payroll_commission/tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from . import test_payslip_commission diff --git a/hr_payroll_commission/tests/test_payslip_commission.py b/hr_payroll_commission/tests/test_payslip_commission.py deleted file mode 100644 index ee0526a3..00000000 --- a/hr_payroll_commission/tests/test_payslip_commission.py +++ /dev/null @@ -1,58 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from datetime import date, timedelta - -from odoo.addons.hr_commission.tests import test_commission - - -class TestCommissionPayslip(test_commission.TestCommission): - - def _createContract(self, employee, commission_rate, admin_commission_rate=0.0): - return self.env['hr.contract'].create({ - 'date_start': '2016-01-01', - 'date_end': '2030-12-31', - 'name': 'Contract for tests', - 'wage': 1000.0, - 'wage_type': 'monthly', - # 'type_id': self.ref('hr_contract.hr_contract_type_emp'), - 'structure_type_id': self.ref('hr_contract.structure_type_worker'), - 'employee_id': employee.id, - 'resource_calendar_id': self.ref('resource.resource_calendar_std'), - 'commission_rate': commission_rate, - 'admin_commission_rate': admin_commission_rate, - 'state': 'open', # if not "Running" then no automatic selection when Payslip is created in 11.0 - }) - - def test_commission(self): - super().test_commission() - commission_type = self.env.ref('hr_payroll_commission.commission_other_input') - payslip = self.env['hr.payslip'].create({ - 'name': 'test slip', - 'employee_id': self.employee.id, - 'date_from': date.today() - timedelta(days=1), - 'date_to': date.today() + timedelta(days=14), - }) - self.assertFalse(payslip.commission_payment_ids) - payslip.action_payslip_cancel() - - # find unpaid commission payments from super().test_commission() - commission_payments = self.env['hr.commission.payment'].search([ - ('employee_id', '=', self.employee.id), - ]) - self.assertTrue(commission_payments) - - # press the button to pay it via payroll - commission_payments.action_report_in_next_payslip() - - payslip = self.env['hr.payslip'].create({ - 'name': 'test slip', - 'employee_id': self.employee.id, - 'date_from': date.today() - timedelta(days=1), - 'date_to': date.today() + timedelta(days=14), - }) - # has attached commission payments - self.assertTrue(payslip.commission_payment_ids) - commission_input_lines = payslip.input_line_ids.filtered(lambda l: l.input_type_id == commission_type) - self.assertTrue(commission_input_lines) - self.assertEqual(sum(commission_input_lines.mapped('amount')), - sum(commission_payments.mapped('commission_amount'))) diff --git a/hr_payroll_commission/views/hr_commission_views.xml b/hr_payroll_commission/views/hr_commission_views.xml deleted file mode 100644 index 291ecc9a..00000000 --- a/hr_payroll_commission/views/hr_commission_views.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - hr.commission.payment.form.payroll - hr.commission.payment - - - - - - - - - - - - - - - -