Procházet zdrojové kódy

bloquear cambio de plantilla mensual si ya hay ordenes

Roberto pineda před 6 měsíci
rodič
revize
8ef44cc2a8

+ 12 - 0
sale_template_contract/models/sale_order_template.py

@@ -45,6 +45,18 @@ class SaleOrderTemplate(models.Model):
         help="Fecha de finalización para el rango del contrato de esta plantilla."
     )
 
+    has_contract_orders = fields.Boolean(
+        string='Tiene órdenes de contrato',
+        compute='_compute_has_contract_orders',
+        store=False
+    )
+
+    def _compute_has_contract_orders(self):
+        SaleOrder = self.env['sale.order']
+        for rec in self:
+            count = SaleOrder.search_count([('sale_order_template_id', '=', rec.id)])
+            rec.has_contract_orders = count > 0
+
     @api.constrains('use_contract_partner', 'contract_partner_id', 'payment_term_id', 'date_start', 'date_end')
     def _check_contract_fields_required(self):
         for rec in self:

+ 1 - 1
sale_template_contract/views/sale_order_template_views.xml

@@ -21,7 +21,7 @@
                            options="{'no_create': True, 'no_open': False}"
                            required="use_contract_partner"
                            invisible="not use_contract_partner"/>
-                    <field name="monthly_invoice_project" invisible="not use_contract_partner" required="use_contract_partner"/>
+                    <field name="monthly_invoice_project" invisible="not use_contract_partner" required="use_contract_partner" readonly="has_contract_orders"/>
                     <field name="payment_term_id" invisible="not use_contract_partner" required="use_contract_partner"/>
                     <field name="date_start" invisible="not use_contract_partner" required="use_contract_partner"/>
                     <field name="date_end" invisible="not use_contract_partner" required="use_contract_partner"/>