From ab44a90f4cc41a3f43a0361c253e31d10750fac1 Mon Sep 17 00:00:00 2001 From: Felipe Date: Tue, 10 Apr 2018 09:28:31 -0300 Subject: [PATCH 1/3] =?UTF-8?q?inser=C3=A7=C3=A3o=20de=20valida=C3=A7?= =?UTF-8?q?=C3=A3o=20no=20campo=20Liberar=20para=20faturamento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kk_sites/models/sale_order.py | 27 +++++++++++++++++++++++++++ kk_sites/views/sale_order.xml | 4 ++++ 2 files changed, 31 insertions(+) diff --git a/kk_sites/models/sale_order.py b/kk_sites/models/sale_order.py index 0d899308..56af466b 100644 --- a/kk_sites/models/sale_order.py +++ b/kk_sites/models/sale_order.py @@ -6,6 +6,22 @@ import json import requests from unicodedata import normalize +from odoo.exceptions import UserError + + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + def _prepare_invoice(self): + lines = self.order_line.filtered( + lambda x: x.invoice_status != 'invoiced') + if all(not line.is_invoice_ok for line in lines): + raise UserError('Não é possível faturar a ordem %s pois nenhuma das\ + linhas faturáveis está liberada para faturamento.\n\ + Acesse as linhas que deseja faturar e marque a opção "Liberar\ + para faturamento"' % self.name) + else: + return super(SaleOrder, self)._prepare_invoice() class SaleOrderLine(models.Model): @@ -18,6 +34,17 @@ class SaleOrderLine(models.Model): description_proposta = fields.Html(string="Descrição para proposta") + is_invoice_ok = fields.Boolean('Liberar para Faturamento') + + purchase_order = fields.Char('Ordem de Compra') + + def invoice_line_create(self, invoice_id, qty): + lines = super(SaleOrderLine, self).invoice_line_create(invoice_id, qty) + for line in lines: + if any(not item.is_invoice_ok for item in line.sale_line_ids): + line.unlink() + return lines + def get_next_folder_number(self, project): link = project.kk_site_id.pasta_servidor res = self.env['kk.sites'].get_server_folders(link, False) diff --git a/kk_sites/views/sale_order.xml b/kk_sites/views/sale_order.xml index 8158b421..369b4883 100644 --- a/kk_sites/views/sale_order.xml +++ b/kk_sites/views/sale_order.xml @@ -16,6 +16,10 @@