diff --git a/src/app/doctype/models/DoctypeModelAbstract.php b/src/app/doctype/models/DoctypeModelAbstract.php
index b8d4f941cce8f35fff75611965d38be73994aaa1..3f44afbb4e04d5db76b1f9486d0241ea7368b3c4 100644
--- a/src/app/doctype/models/DoctypeModelAbstract.php
+++ b/src/app/doctype/models/DoctypeModelAbstract.php
@@ -55,25 +55,15 @@ class DoctypeModelAbstract
 
     public static function create(array $aArgs)
     {
-        $actioncategories = $aArgs['actionCategories'];
-        unset($aArgs['actionCategories']);
+        ValidatorModel::notEmpty($aArgs, ['description', 'doctypes_first_level_id', 'doctypes_second_level_id', 'coll_id']);
+        ValidatorModel::intVal($aArgs, ['doctypes_first_level_id', 'doctypes_second_level_id']);
+
+        $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_second_level_id_seq']);
         DatabaseModel::insert([
-            'table'         => 'actions',
+            'table'         => 'doctypes',
             'columnsValues' => $aArgs
         ]);
 
-        $tab['action_id'] = max(ActionModel::get())['id'];
-
-        for ($i=0;$i<count($actioncategories);$i++) {
-            $tab['category_id'] = $actioncategories[$i];
-            DatabaseModel::insert(
-                [
-                'table'         => 'actions_categories',
-                'columnsValues' => $tab
-                ]
-            );
-        }
-
         return true;
     }
 
diff --git a/src/app/doctype/models/FirstLevelModelAbstract.php b/src/app/doctype/models/FirstLevelModelAbstract.php
index a522e130b9df90670fa10a765975bf7e962b7eee..184478076230c4543bdffa7595c0a55a11f1424d 100644
--- a/src/app/doctype/models/FirstLevelModelAbstract.php
+++ b/src/app/doctype/models/FirstLevelModelAbstract.php
@@ -55,25 +55,14 @@ class FirstLevelModelAbstract
 
     public static function create(array $aArgs)
     {
-        $actioncategories = $aArgs['actionCategories'];
-        unset($aArgs['actionCategories']);
+        ValidatorModel::notEmpty($aArgs, ['label']);
+
+        $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_first_level_id_seq']);
         DatabaseModel::insert([
-            'table'         => 'actions',
+            'table'         => 'doctypes_first_level',
             'columnsValues' => $aArgs
         ]);
 
-        $tab['action_id'] = max(ActionModel::get())['id'];
-
-        for ($i=0;$i<count($actioncategories);$i++) {
-            $tab['category_id'] = $actioncategories[$i];
-            DatabaseModel::insert(
-                [
-                'table'         => 'actions_categories',
-                'columnsValues' => $tab
-                ]
-            );
-        }
-
         return true;
     }
 
diff --git a/src/app/doctype/models/SecondLevelModelAbstract.php b/src/app/doctype/models/SecondLevelModelAbstract.php
index cc33545c58526172cbe351a7792f120bd8d365e2..ed92b164a91ea9b372802df81d6fa6eb4c46ca9c 100644
--- a/src/app/doctype/models/SecondLevelModelAbstract.php
+++ b/src/app/doctype/models/SecondLevelModelAbstract.php
@@ -55,25 +55,15 @@ class SecondLevelModelAbstract
 
     public static function create(array $aArgs)
     {
-        $actioncategories = $aArgs['actionCategories'];
-        unset($aArgs['actionCategories']);
+        ValidatorModel::notEmpty($aArgs, ['label', 'doctypes_first_level_id']);
+        ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']);
+
+        $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_second_level_id_seq']);
         DatabaseModel::insert([
-            'table'         => 'actions',
+            'table'         => 'doctypes_second_level',
             'columnsValues' => $aArgs
         ]);
 
-        $tab['action_id'] = max(ActionModel::get())['id'];
-
-        for ($i=0;$i<count($actioncategories);$i++) {
-            $tab['category_id'] = $actioncategories[$i];
-            DatabaseModel::insert(
-                [
-                'table'         => 'actions_categories',
-                'columnsValues' => $tab
-                ]
-            );
-        }
-
         return true;
     }