diff --git a/energy_project/models/project.py b/energy_project/models/project.py
index 26d4f1d6653063eb135b6c7b849ee519e155979d..7a00c8ca8950c21b7f09912f46c8fa3ec2ef050e 100644
--- a/energy_project/models/project.py
+++ b/energy_project/models/project.py
@@ -2,6 +2,7 @@ from odoo import _, fields, models
 
 STATE_VALUES = [
     ("draft", _("Draft")),
+    ("inscription", _("In Inscription")),
     ("activation", _("In Activation")),
     ("active", _("Active")),
 ]
diff --git a/energy_selfconsumption/models/distribution_table.py b/energy_selfconsumption/models/distribution_table.py
index cd0812fceeb21756b2b5253e019c540567a073f0..b883271858014112ee566f21c4c3e6f2d09ff954 100644
--- a/energy_selfconsumption/models/distribution_table.py
+++ b/energy_selfconsumption/models/distribution_table.py
@@ -4,6 +4,8 @@ from odoo.exceptions import ValidationError
 STATE_VALUES = [
     ("draft", _("Draft")),
     ("validated", _("Validated")),
+    ("process", _("In process")),
+    ("active", _("Active")),
 ]
 
 TYPE_VALUES = [
@@ -24,6 +26,7 @@ class DistributionTable(models.Model):
 
     name = fields.Char(readonly=True)
     selfconsumption_project_id = fields.Many2one('energy_selfconsumption.selfconsumption', required=True)
+    selfconsumption_project_state = fields.Selection(related='selfconsumption_project_id.state')
     type = fields.Selection(TYPE_VALUES, default="fixed", required=True, string="Modality")
     state = fields.Selection(STATE_VALUES, default="draft", required=True)
     supply_point_assignation_ids = fields.One2many('energy_selfconsumption.supply_point_assignation',
@@ -34,10 +37,22 @@ class DistributionTable(models.Model):
         "res.company", default=lambda self: self.env.company, readonly=True
     )
 
+    @api.model
+    def create_table(self, selfconsumption_project_id):
+        existing_tables = self.search([
+            ('selfconsumption_project_id', '=', selfconsumption_project_id.id),
+        ])
+        if bool(existing_tables):
+            return any(table['state'] == 'active' for table in existing_tables)
+        return True
+
     @api.model
     def create(self, vals):
-        vals['name'] = self.env.ref('energy_selfconsumption.distribution_table_sequence', False).next_by_id()
-        return super(DistributionTable, self).create(vals)
+        selfconsumption_project_id = self.env['energy_selfconsumption.selfconsumption'].browse(vals.get('selfconsumption_project_id'))
+        if self.create_table(selfconsumption_project_id):
+            vals['name'] = self.env.ref('energy_selfconsumption.distribution_table_sequence', False).next_by_id()
+            return super(DistributionTable, self).create(vals)
+        raise ValidationError(_("In order to create a new DistributionTable it is necessary that one of the DistributionTables created is active"))
 
     @api.onchange('selfconsumption_project_id')
     def _onchange_selfconsumption_project_id(self):
@@ -51,4 +66,10 @@ class DistributionTable(models.Model):
                 raise ValidationError(_("Self-consumption project is not in activation"))
             if record.selfconsumption_project_id.distribution_table_ids.filtered_domain([('state', '=', 'validated')]):
                 raise ValidationError(_("Self-consumption project already has a validated table"))
+            if record.selfconsumption_project_id.distribution_table_ids.filtered_domain([('state', '=', 'process')]):
+                raise ValidationError(_("Self-consumption project already has a table in process"))
             record.write({"state": "validated"})
+
+    def button_draft(self):
+        for record in self:
+            record.write({"state": "draft"})
diff --git a/energy_selfconsumption/models/selfconsumption.py b/energy_selfconsumption/models/selfconsumption.py
index be26b2ce8f2b9ace9f4d70bda657d56e61d6021f..a54d5e1477463cdfe78c56aca9569897eaf20aa5 100644
--- a/energy_selfconsumption/models/selfconsumption.py
+++ b/energy_selfconsumption/models/selfconsumption.py
@@ -53,9 +53,14 @@ class Selfconsumption(models.Model):
             'context': {'create': True, 'default_project_id': self.id},
         }
 
+    def distribution_table_state(self, actual_state, new_state):
+        distribution_table_to_activate = self.distribution_table_ids.filtered(lambda table: table.state == actual_state)
+        distribution_table_to_activate.write({"state": new_state})
+
     def set_activation(self):
         for record in self:
-            record.write({"state": "activation"})
+            record.write({"state": "activation"})        
+        self.distribution_table_state("validated", "process")
 
     def activate(self):
         for record in self:
@@ -65,6 +70,12 @@ class Selfconsumption(models.Model):
                 raise ValidationError(_("Project must have a valid CIL."))
             if not record.power or record.power <= 0:
                 raise ValidationError(_("Project must have a valid Generation Power."))
-            if not record.distribution_table_ids.filtered_domain([('state', '=', 'validated')]):
-                raise ValidationError(_("Must have a valid Distribution Table."))
             record.write({"state": "active"})
+        self.distribution_table_state("process", "active")
+
+    def set_inscription(self):
+        for record in self.distribution_table_ids:
+            record.write({"state": "validated"})        
+        for record in self:
+            record.write({"state": "inscription"})
+        self.distribution_table_state("process", "validated")
diff --git a/energy_selfconsumption/views/distribution_table_views.xml b/energy_selfconsumption/views/distribution_table_views.xml
index aa2537c1d7ebdba2f2239cca17da38f51064f232..5f5998ea5d2c0638baf12fc92ce6eb7a95a9327b 100644
--- a/energy_selfconsumption/views/distribution_table_views.xml
+++ b/energy_selfconsumption/views/distribution_table_views.xml
@@ -14,12 +14,19 @@
                                 name="button_validate"
                                 states="draft"
                         />
+                        <button
+                            type="object"
+                            string="Reset to draft"
+                            name="button_draft"
+                            attrs="{'invisible':['|',('state','not in',['validated']),('selfconsumption_project_state','not in',['inscription'])]}"
+                        />
                         <field
                                 name="state"
                                 widget="statusbar"
                                 readonly="True"
-                                statusbar_visible="draft,validated"
+                                statusbar_visible="draft,validated,process,active"
                         />
+                        <field name="selfconsumption_project_state" invisible="1"/>
                     </header>
                     <sheet>
                         <widget
@@ -106,4 +113,4 @@
             </field>
         </record>
     </data>
-</odoo>
\ No newline at end of file
+</odoo>
diff --git a/energy_selfconsumption/views/selfconsumption_views.xml b/energy_selfconsumption/views/selfconsumption_views.xml
index 8e43e6f25ce9e1bc98dc798802fecd938ad07450..e79ce94bb47f5dfc45c2843f69c5166c0dfae6bb 100644
--- a/energy_selfconsumption/views/selfconsumption_views.xml
+++ b/energy_selfconsumption/views/selfconsumption_views.xml
@@ -12,7 +12,7 @@
                                 type="object"
                                 string="Set in activation"
                                 name="set_activation"
-                                attrs="{'invisible':[('state','not in',['draft'])]}"
+                                attrs="{'invisible':[('state','not in',['draft', 'inscription'])]}"
                         />
                         <button
                                 type="object"
@@ -20,11 +20,19 @@
                                 name="activate"
                                 attrs="{'invisible':[('state','not in',['activation'])]}"
                         />
+                        <button
+                                type="object"
+                                string="Reset to inscription"
+                                name="set_inscription"
+                                attrs="{'invisible':[('state','not in',['activation'])]}"
+                                confirm="Are you sure you want to change the project status to the previous step?
+                                 If so, the distribution table will return to the 'validated' state."
+                        />
                         <field
                                 name="state"
                                 widget="statusbar"
                                 readonly="True"
-                                statusbar_visible="draft,activation,active"
+                                statusbar_visible="draft,inscription,activation,active"
                         />
                     </header>
                     <sheet>