diff --git a/sale_credit_limit/__init__.py b/sale_credit_limit/__init__.py deleted file mode 100644 index 0650744f..00000000 --- a/sale_credit_limit/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import models diff --git a/sale_credit_limit/__manifest__.py b/sale_credit_limit/__manifest__.py deleted file mode 100644 index c112b152..00000000 --- a/sale_credit_limit/__manifest__.py +++ /dev/null @@ -1,29 +0,0 @@ -{ - 'name': 'Sale Credit Limit', - 'summary': 'Uses credit limit on Partners to warn salespeople if they are over their limit.', - 'version': '15.0.1.0.0', - 'author': "Hibou Corp.", - 'category': 'Sale', - 'license': 'OPL-1', - 'complexity': 'expert', - 'images': [], - 'website': "https://hibou.io", - 'description': """ -Uses credit limit on Partners to warn salespeople if they are over their limit. - -When confirming a sale order, the current sale order total will be considered and a Sale Order Exception -will be created if the total would put them over their credit limit. -""", - 'depends': [ - 'sale', - 'account', - 'sale_exception', - ], - 'demo': [], - 'data': [ - 'data/sale_exceptions.xml', - 'views/partner_views.xml', - ], - 'auto_install': False, - 'installable': True, -} diff --git a/sale_credit_limit/data/sale_exceptions.xml b/sale_credit_limit/data/sale_exceptions.xml deleted file mode 100644 index cba88e60..00000000 --- a/sale_credit_limit/data/sale_exceptions.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - Invoice Partner credit limit exceeded. - The Customer or Invoice Address has a credit limit. - This sale order, or the customer has an outstanding balance that, exceeds their credit limit. - 50 - sale.order - -partner = object.partner_invoice_id.commercial_partner_id -partner_balance = partner.credit + object.amount_total -if partner.credit_limit and partner.credit_limit <= partner_balance: - failed = True - - - - - - Customer On Credit Hold. - The Customer is on Credit Hold. - Please have the customer contact accounting. - 50 - sale.order - -partner = object.partner_invoice_id.commercial_partner_id -if partner.credit_hold: - failed = True - - - - - - Customer has Overdue Invoices. - The Customer has unpaid overdue invoices. - Please have the customer contact accounting. - 55 - sale.order - -partner = object.partner_invoice_id.commercial_partner_id -if partner.invoice_ids.filtered(lambda i: i.state == 'posted' and i.payment_state != 'paid' and (i.invoice_date_due and str(i.invoice_date_due) < str(datetime.date.today())) and i.move_type == 'out_invoice'): - failed = True - - - - - \ No newline at end of file diff --git a/sale_credit_limit/models/__init__.py b/sale_credit_limit/models/__init__.py deleted file mode 100644 index da805931..00000000 --- a/sale_credit_limit/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 partner -from . import sale diff --git a/sale_credit_limit/models/partner.py b/sale_credit_limit/models/partner.py deleted file mode 100644 index ce018f0f..00000000 --- a/sale_credit_limit/models/partner.py +++ /dev/null @@ -1,18 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from odoo import api, fields, models - - -class ResPartner(models.Model): - _inherit = 'res.partner' - - credit_remaining = fields.Float('Credit Remaining', compute='_compute_credit_remaining') - credit_hold = fields.Boolean('Credit Hold') - - @api.depends('credit_limit', 'credit') - def _compute_credit_remaining(self): - for partner in self: - if partner.credit_limit: - partner.credit_remaining = partner.credit_limit - partner.credit - else: - partner.credit_remaining = 0.0 diff --git a/sale_credit_limit/models/sale.py b/sale_credit_limit/models/sale.py deleted file mode 100644 index 4512fcac..00000000 --- a/sale_credit_limit/models/sale.py +++ /dev/null @@ -1,28 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from odoo import api, models, tools -from odoo.tools.safe_eval import datetime as wrapped_datetime - - -class SaleOrder(models.Model): - _inherit = 'sale.order' - - # We need a way to be able to create a 'today' date to compare - @api.model - def _exception_rule_eval_context(self, rec): - res = super(SaleOrder, self)._exception_rule_eval_context(rec) - res["datetime"] = wrapped_datetime - return res - - @api.onchange('partner_invoice_id') - def _onchange_partner_invoice_id(self): - for so in self: - partner = so.partner_invoice_id.commercial_partner_id - if partner.credit_limit and partner.credit_limit <= partner.credit: - m = 'Partner outstanding receivables %s is above their credit limit of %s' \ - % (tools.format_amount(self.env, partner.credit, so.currency_id), - tools.format_amount(self.env, partner.credit_limit, so.currency_id)) - return { - 'warning': {'title': 'Sale Credit Limit', - 'message': m} - } diff --git a/sale_credit_limit/tests/__init__.py b/sale_credit_limit/tests/__init__.py deleted file mode 100644 index 2fe6104a..00000000 --- a/sale_credit_limit/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_sale_credit_exception diff --git a/sale_credit_limit/tests/test_sale_credit_exception.py b/sale_credit_limit/tests/test_sale_credit_exception.py deleted file mode 100644 index f0af5e30..00000000 --- a/sale_credit_limit/tests/test_sale_credit_exception.py +++ /dev/null @@ -1,31 +0,0 @@ -# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details. - -from odoo.addons.sale_exception.tests.test_sale_exception import TestSaleException - - -class TestSaleCreditException(TestSaleException): - - def setUp(self): - super(TestSaleCreditException, self).setUp() - - def test_sale_order_credit_limit_exception(self): - self.sale_exception_confirm = self.env['sale.exception.confirm'] - partner = self.env.ref('base.res_partner_12') - partner.credit_limit = 100.00 - p = self.env.ref('product.product_product_25_product_template') - so1 = self.env['sale.order'].create({ - 'partner_id': partner.id, - 'partner_invoice_id': partner.id, - 'partner_shipping_id': partner.id, - 'order_line': [(0, 0, {'name': p.name, - 'product_id': p.id, - 'product_uom_qty': 2, - 'product_uom': p.uom_id.id, - 'price_unit': p.list_price})], - 'pricelist_id': self.env.ref('product.list0').id, - }) - - # confirm quotation - so1.action_confirm() - self.assertTrue(so1.state == 'draft') - self.assertFalse(so1.ignore_exception) diff --git a/sale_credit_limit/views/partner_views.xml b/sale_credit_limit/views/partner_views.xml deleted file mode 100644 index 7463769c..00000000 --- a/sale_credit_limit/views/partner_views.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - res.partner.form.inherit - res.partner - - - - - - - - - - - - - - \ No newline at end of file